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 ```