Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Организация доступа по SSH к удалённому серверу без пароля

Оригинал: Password less SSH login setup on Linux
Автор: Arnab Satapathi
Дата публикации: 19 сентября 2017 г.
Перевод: В.Костромин
Дата перевода: 24 сентября 2017 г.

Короткий пароль не безопасен, это просто кошмар с точки зрения безопасности, а длинный пароль для входа убивает производительность. В этой статье будет показано, как организовать доступ по SSH к вашим серверам или любому компьютеру без ввода пароля.

Я обнаружил, что при этом экономится куча времени. Так что стоит применить этот способ, если вы имеете дело с множеством серверов или, например, используете SSHFS.

Мы будем предполагать, ваш сервер уже использет службу SSH и она запущена. При этом мы не будем запускать SSH-сервер на клиентской стороне, будем использовать беспарольный SSH.

1. Генерируем ключ SSH

Снова предполагаем, что у вас на клиентской машине установлен SSH-клиент, например openssh-client. Первым делом нужно сгенерировать ключ SSH.

Для этого будем использовать команду ssh-keygen, которая имеется в составе пакета openssh-client в Ubuntu, как и в любом другом дистрибутиве, основанном на Debian.

ssh-keygen -t rsa

генерация ключей для беспарольного доступа по ssh

Вам не нужно при этом вводить какую-то парольную фразу, просто держите нажатой клавишу Enter. Эта команда создаст 2048-битовый ключ RSA, который по умолчанию будет сохранен в каталоге ~/.ssh.

Если вы хотите получить ключ другого типа, например DSA или ECDSA, добавьте соответствующий параметр после аргумента -t к команде ssh-keygen.

ssh-keygen -t dsa

Я полагаю, что 2048-битный ключ RSA достаточно надежен для использования в не-критичных случаях. Однако, если вы хотите сгенерировать более длинный ключ, используйте в команде аргумент -b.

ssh-keygen -t rsa -b 4096

2. Копируем публичный ключ SSH на удаленный сервер

Существует два типа SSH-ключей для организации безпарольного доступа по SSH: несекретный публичный ключ (a public key) и секретный ключ (private key). id_rsa - это секретный ключ, а id_rsa.pub - это ваш публичный ключ.

На удаленный сервер вам нужно скопировать публичный ключ, либо с помощью команды ssh-copy-id, либо вручную каким-то другим способом.

Типичный синтаксис команды копирования публичного ключа SSH выглядит следующим образом.

ssh-copy-id  username@remote.host.name

Может быть более понятен будет следующий пример:

ssh-copy-id  root@192.168.1.6

У вас будет запрошен текущий пароль для того, чтобы провести аутентификацию вас как законного пользователя, введите его. Вам будет предложено подтвердить подлинность удаленного сервера, просто введите yes.

Существует альтернативный вариант: вы можете залогиниться на удаленный сервер и создать текстовый файл в каталоге the ~/.ssh, например, выполнив следующую команду.

nano ~/.ssh/authorized_keys

Скопируйте в этот файл содержимое вашего файла ~/.ssh/id_rsa.pub на вашей локальной машине, сохраните файл и выйдите из текстового редактора.

3. Тестирование безпарольного доступа по SSH и замечания

Теперь вы уже должны иметь возможность подключиться к удаленному серверу не вводя пароля. И для достижения большей безопасности вы можете отключить возможность SSH-входа по паролю.

Замечание: Очень важно сохранять в тайне ваш секретный ключ. Никогда никому его не сообщайте и не теряйте его. Также никогда не перезаписывайте существующие ключи, если вы ранее использовали таковой. Вы просто-напросто потеряете беспарольный доступ по SSH к вашему серверу.

Надеюсь, что это краткое руководство по включению входа в систему без пароля достаточно простое, и вы все поняли. Если у вас есть какие-либо предложения или вопросы, задайте их в комментариях (прим.: имеются в виду комментарии к оригинальной статье).


Если вы не очень хорошо знакомы с SSH, вы можете почитать следующие статьи на нашем сайте: