Если вы арендовали сервер для публикации вашего сайта или приложения вне зависимости от того физический он (bare-metal server
) или виртуальный (Virtual Dedicated Server
, VDS
) настоятельно не рекомендуется подключаться к нему и работать с ним под супер-пользователем root
, который имеет неограниченные права. Правильнее будет создать нового пользователя и работать под ним. Также следует отказаться от подключения к серверу через ssh
по паролю в пользу аутентификации с помощью ключа.
Подключитесь к серверу с помощью ssh под пользователем root и введите следующую команду:
adduser username
где username – имя нового пользователя.
Далее вам нужно будет придумать пароль, указать контактную информацию (можно пропустить) и подтвердить корректность введённых данных. После этого будет создан новый пользователь.
Если вы хотите, чтобы новый пользователь имел привилегии администратора системы (возможность использовать sudo
), добавьте его в группу sudo
с помощью следующей команды:
usermod -aG sudo username
Чтобы переключиться на созданного ранее пользователя используйте следующую команду:
su - username
Чтобы подключиться к серверу по ssh используя пароль, воспользуйтесь следующей командой:
ssh username@server-ip-address
Команда попросит ввести пароль пользователя username
, после чего вы подключитесь к серверу под созданным ранее пользователем.
Для подключения к серверу с помощью ssh необходимо сгенерировать пару из публичного и приватного ключей (либо использовать существующую), скопировать публичный ключ на сервер, затем используя приватный ключ подключиться к серверу.
Для генерации пары ключей воспользуйтесь следующей командой:
ssh-keygen
Команда попросит вас выбрать расположение ключа (по-умолчанию .ssh/id_ed25519
) и добавить секретную фразу (опционально).
По-умолчанию, для генерации ключей будет использован алгоритм ED25519. Для использования другого алгоритма можно передать параметр командной строки -t
. Например, сгенерировать пару ключей с использованием алгоритма RSA можно следующим образом:
ssh-keygen -t rsa -b 4096
-t rsa
: название алгоритма;-b 4096
: длина ключа в битах.Для копирования публичного ключа на сервер воспользуйтесь следующей командой:
ssh-copy-id username@server_ip_or_hostname
username
: имя созданного ранее пользователя;server_ip_or_hostname
: IP адрес или домен вашего сервера.Эта команда добавит ваш публичный ключ (по-умолчанию, .ssh/id_ed25519.pub
) в файл ~/.ssh/authorized_keys
на сервере, тем самым позволяя подключаться к нему с помощью приватного ключа.
Теперь вы можете подключиться к серверу по ssh без использования пароля:
ssh username@server_ip_or_hostname
Для отключения возможности подключиться к серверу по ssh необходимо внести изменения в файл конфигурации ssh (sshd_config
) на сервере:
sudo nano /etc/ssh/sshd_config
Найдите в файле параметр PasswordAuthentication
и установите его как показано ниже:
PasswordAuthentication no
Убедитесь, что у вас активна аутентификация по ключу:
PubkeyAuthentication yes
Если вы хотите отключить подключение по ssh для супер-пользователя root
найдите параметр PermitRootLogin
и установите для него значение no
:
PermitRootLogin no
Сохраните файл и перезапустите ssh сервис, чтобы изменения вступили в силу:
sudo systemctl restart ssh
До завершения текущей ssh сессии откройте новый терминал и попытайтесь подключиться к серверу по ssh с помощью ключа, чтобы убедиться, что всё работает корректно:
ssh username@server_ip_or_hostname
Будьте осторожны: прежде чем полностью отключить аутентификацию по паролю убедитесь, что вход на основе ssh ключа работает, иначе вы рискуете потерять доступ к своему серверу!