Для соединения с сервером Debian/Ubuntu через SSH можно использовать аутентификацию по паролю, но есть более безопасный метод: аутентификация через пару ключей.
Для этого необходимо сгенерировать ключевую пару — закрытый ключ и открытый ключ используя клиентский компьютер и затем загрузить открытый ключ на сервер.
Соединения SSH будут аутентифицироваться на соответствии открытого ключа с закрытым ключом, хранящимся на клиентском компьютере и совсем не обязательно вводить пароль учетной записи (хотя эту опцию можно и оставить).
Аутентификация по паре ключей может защитить от атак взламывания пароля.
- Генерируем SSH ключи на клиентском компьютере:
ssh-keygen
- Появится диалог утилиты SSH keygen. Нужно следовать инструкциям на экране (ответить на несколько вопросов). Самое главное ввести правильный ufdn адрес клиента и нажать на Enter при вводе passphrase (если конечно пароль не нужен).
- Создаем директорию на сервере для публичного ключа. Она должна быть в домашней директории (/home/yourusername):
mkdir .ssh
- копируем файл /home/yourusername/.ssh/id_rsa.pub на сервер, в файл /home/yourusername/.ssh/authorized_keys:
scp ~/.ssh/id_rsa.pub hostname_of_server:.ssh/authorized_keys
Важно: если файл authorized_keys на сервере уже существует, то открытый ключ нужно просто дописать:
cat ~/.ssh/id_rsa.pub | ssh hostname_of_server "cat >> .ssh/authorized_keys"
Это позволит использовать несколько ключей для авторизации под одним пользователем, например, если вы хотите авторизоваться с разных машин с разными ключами.
Ключи SSH сгенерированы, публичный ключ установлен на сервере. Всё готово для использования аутентификация SSH по паре ключей key.