# Начальная настройка сервера ## Первое подключение Подключаемся к серверу к `root` по паролю, который должен выдываться вместе с VDS. ```sh ssh root@ ``` Уже в терминале сервера выполняем. ```sh { .code-wrap } # Создаём пользователя и наделяем его правом использовать `sudo`. adduser adduser sudo su - # Все файлы, созданные пользователем, по умолчанию будут иметь права 600, а директории - 700. echo 'umask 0077' >> .bashrc source ~/.bashrc # Добавляем свой публичный SSH ключ (cat ~/.ssh/id_rsa.pub), чтобы подключаться к пользователю по SSH напрямую. mkdir .ssh 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 # На Windows надо будет нажать на Tab, чтобы раскрыть `~`. # code - VS Code code ~/.ssh/config ``` ``` Host HostName User Port ``` Можно проверить, что подключение проходит без ошибок ```sh ssh ```