Вход в систему аутентификации с открытым ключом SSH

Обычно при использовании SSH для удалённого входа на сервер требуется ввести имя пользователя и пароль. Это очень неудобно для тех, кто часто занимается обслуживанием систем. Как войти на удалённый сервер Linux/Unix напрямую без пароля? Аутентификация по открытому ключу SSH может решить эту проблему.

Обычно при удалённом доступе к серверу по SSH требуется вводить имя пользователя и пароль. Это очень неудобно для тех, кто часто обслуживает систему. Как же войти на удалённый сервер напрямую без пароля?А как насчёт Unix-серверов? Решить эту проблему можно с помощью аутентификации по открытому ключу SSH.
Аутентификация с открытым ключом использует пару зашифрованных строк: открытый ключ, видимый всем и используемый для шифрования, и закрытый ключ, видимый только владельцу, используемый для расшифровки. Шифротекст, зашифрованный открытым ключом, можно легко расшифровать с помощью закрытого ключа, но подобрать закрытый ключ по открытому ключу очень сложно.
Перед использованием аутентификации с открытым ключом проверьте файл конфигурации SSH сервера /etc/ssh/sshd_config

RSAAuthentication да # Включить аутентификацию RSA, по умолчанию — да PubkeyAuthentication да # Включить аутентификацию открытого ключа, по умолчанию — да

Если проблем с настройкой не возникло, можно переходить к следующему шагу.
Рассмотрим пример. Например, есть две машины: клиент A и сервер B. Если вы хотите использовать аутентификацию по открытому ключу SSH с машины A как клиентского пользователя на машину B как серверный пользователь, метод будет следующим:
1. Сгенерируйте открытый ключ и закрытый ключ на клиенте A.

ssh-keygen -t rsa Генерация пары ключей RSA (открытый/закрытый). Укажите файл для сохранения ключа (/home/client/.ssh/id_rsa): #Press Enter здесь Создан каталог '/home/client/.ssh'. Введите пароль (пустой, если пароль отсутствует): #Press Enter здесь Введите тот же пароль ещё раз: #Press Enter здесь Ваша идентификация сохранена в /home/client/.ssh/id_rsa. Ваш открытый ключ сохранен в /home/client/.ssh/id_rsa.pub. Отпечаток ключа: f5:30:ba:10:ee:7a:c6:cf:d8:ec:3f:4c:b3:f1:09:6d client@linuxsong.org

Это создает открытый ключ (/home/client/.ssh/id_rsa.pub) и закрытый ключ (/home/client/.ssh/id_rsa) текущего пользователя client на этом компьютере.

2. Скопируйте файл открытого ключа, сгенерированный на предыдущем шаге, на сервер B. Затем добавьте содержимое файла в .ssh/authorized_keys в каталоге пользователя сервера:

cat id_rsa.pub >> .ssh/authorized_keys

Таким образом, пользователю-клиенту не нужно вводить пароль при входе на сервер в качестве пользователя сервера с клиента.
Кроме того, если уровень безопасности сервера достаточно высок, вы можете разрешить пользователям аутентификацию только с помощью открытых ключей и запретить вход с помощью паролей. Для этого просто измените файл конфигурации сервера /etc/sshd/sshd_config.

ПарольАутентификация нет

После внесения изменений перезапустите службу sshd.
Таким образом, когда пользователь войдет в систему с паролем, ему будет предложено:

Доступ запрещен (publickey,gssapi-with-mic)

Эффективно повысить безопасность системы.
Уведомление:
Права доступа к каталогу .ssh должны быть 0700.
Права доступа к файлу .ssh/authorized_keys должны быть 0600.
В противном случае аутентификация с использованием открытого ключа не вступит в силу.

счет

Ответить

Ваш адрес электронной почты не будет опубликован. Обязательные поля помечены *