Найти тему

Установка и настройка SSH сервера в Ubuntu Server 20

Оглавление

Установите SSH сервер командой:

sudo apt install openssh-server

Проверьте, что служба ssh.service работает:

systemctl is-active ssh

Пробуйте подключиться к серверу с удаленного компьютера по SSH командой:

ssh user@192.168.0.1

где user - имя учетной записи на сервере с возможностью sudo, 192.168.0.1 — адрес сервера. Вместо адреса можно использовать доменное имя. Сервер запросит пароль, введите.

При первом подключении вы получите предупреждение о невозможности установления подлинности хоста, к которому подключаетесь. Введите в терминале ответ "yes". Ключ хоста добавится в файл /home/user/.ssh/known_hosts на удаленном компьютере, и предупреждений больше не будет.

Настройки ssh сервера находятся в файле /etc/ssh/sshd_config. Создайте резервную копию с настройками по умолчанию командой:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.default

Откройте файл для редактирования командой:

sudo nano /etc/ssh/sshd_config
-2

Запись Port 22 - порт, который прослушивает SSH сервер, желательно сменить его на свой.

  • Запись PermitRootLogin prohibit-password можно поменять на PermitRootLogin no, запретив вход от имени суперпользователя.
  • Запись PermitEmptyPasswords no запрещает авторизацию с пустым паролем.
  • Запись PasswordAuthentication no запретит авторизацию по паролю. Но предварительно необходимо настроить авторизацию по ключу! Иначе вы потеряете доступ к серверу.

Закройте соединение командой:

exit

Авторизация по SSH2 RSA-ключу

При таком способе авторизации на клиентском компьютере генерируется пара ключей:

  • Публичный - копируется на сервер;
  • Приватный - остается на клиентском компьютере.

Сгенерируйте ключи на клиенте, выполнив команду:

ssh-keygen

Ответьте на вопросы мастера, запомните кодовую фразу, либо оставьте её пустой. Для примера сгенерируем ключи с названием rsa_key и rsa_key.pub.

Скопируйте на сервер сгенерированный публичный ключ:

ssh-copy-id -p 22 -i ~/.ssh/rsa_key.pub user@192.168.0.1

где параметр -p 22 - это порт, который вы установили в файле sshd_config. Если порт не менялся, то данный параметр можно упускать, но в дальнейших примерах он все равно будет указываться для наглядности.

Ответ от сервера будет приблизительно таким:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user/.ssh/rsa_key.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
user@192.168.0.1's password: 
Number of key(s) added: 1
Now try logging into the machine, with: "ssh -p '22' 'user@192.168.0.1'"
and check to make sure that only the key(s) you wanted were added.

Вновь подключитесь к серверу по паролю, выполнив команду:

ssh user@192.168.0.1

Откройте файл настроек для редактирования командой:

sudo nano /etc/ssh/sshd_config

Приведите записи к следующему виду:

PasswordAuthentication no
PubkeyAuthentication yes

запретив тем самым авторизацию по паролю и разрешив по rsa-ключу.

Перезагрузите сервис SSH командой:

sudo systemctl restart ssh

Отключитесь командой:

exit

Теперь пробуйте подключиться по паролю:

ssh -p 22 user@192.168.0.1

Получаем ответ:

user@192.168.0.1: Permission denied (publickey).

Пробуйте подключиться по ключу:

ssh -p 22 -i ~/.ssh/rsa_key user@192.168.0.1

Если ключ был сгенерирован с использованием секретной фразы, её придется ввести.

Добавляем некоторые удобства

В домашней папке клиентского компьютера создайте файл ~/.ssh/config со следующим содержимым:

Host server
User user
HostName 192.168.0.1
Port 22
IdentityFile ~/.ssh/rsa_key

Теперь подключаться к серверу можно командой:

ssh server

Дополнительно

Для управления SSH существуют команды

sudo systemctl start|stop|restart ssh

Разрешить или запретить запуск ssh-службы при загрузке системы:

sudo systemctl enable|disable ssh

#ssh #ubuntuserver #raspberry