From 0f7e022a5fb7d3d7ee89c9091a5ec52ee9d251f3 Mon Sep 17 00:00:00 2001 From: Arity-T Date: Thu, 23 Jan 2025 22:21:16 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/servers/index.md | 61 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 9 deletions(-) diff --git a/docs/servers/index.md b/docs/servers/index.md index bc68219..1aba81d 100644 --- a/docs/servers/index.md +++ b/docs/servers/index.md @@ -1,38 +1,81 @@ -# Servers +# Начальная настройка сервера ## Первое подключение - Подключаемся к серверу к `root` по паролю, который должен выдываться вместе с VDS. ```sh ssh root@ ``` -Создаём пользователя с правом использовать `sudo`. -```sh +Уже в терминале сервера выполняем. +```sh { .code-wrap } +# Создаём пользователя и наделяем его правом использовать `sudo`. adduser -sudo adduser sudo +adduser sudo su - + +# Все файлы, созданные пользователем, по умолчанию будут иметь права 600, а директории - 700. +echo 'umask 0077' >> .bashrc +source ~/.bashrc + +# Добавляем свой публичный SSH ключ (cat ~/.ssh/id_rsa.pub), чтобы подключаться к пользователю по SSH напрямую. mkdir .ssh -# cat ~/.ssh/id_rsa.pub echo "" >> .ssh/authorized_keys +# Актуально, только если настройку umask не добавлять в .bashrc +# chmod 700 ~/.ssh +# chmod 600 ~/.ssh/authorized_keys ``` -Придумываем имя новому серверу. +Теперь можно попробовать подключиться к серверу по SSH-ключу. +```sh +ssh @ +``` + +Желательно обновить все пакеты. +```sh +sudo apt update +sudo apt upgrade +``` + +Можно придумать серверу имя, оно будет отображаться в терминале после `@`. ```sh sudo nano /etc/hostname sudo nano /etc/hosts sudo systemctl restart systemd-hostnamed ``` + +## Настройка конфига SSH +Открываем конфиг SSH. +```sh +sudo nano /etc/ssh/sshd_config +``` + + - `Port ` - можно поменять со стандртного 22 на какой-нибудь другой. Лучше больше 10000, чтобы уменьшить вероятность конфликтов с другим ПО. + - `PermitRootLogin no` - запрещаем авторизацию по SSH под `root`. + - `PasswordAuthentication no` - запрещаем авторизацию по SSH по паролю. + +??? question "А что будет, если потерять SSH-ключ?" + + Обычно хостинг предоставляет доступ к `VNC` или другие методы подключения к серверу, которые не требуют подключения по SSH. Однако в таком случае будет необходим доступ к личному кабинету хостинга. + + На своей машине добавляем сервер в конфиг SSH. ```sh -code ~/.ssh/config +# На Windows надо будет нажать на Tab, чтобы раскрыть `~`. +# code - VS Code +code ~/.ssh/config ``` ``` -Host +Host HostName User + Port +``` + +Можно проверить, что подключение проходит без ошибок +```sh +ssh ```