Вход без пароля с помощью ключей SSH
SSH или Secure Shell является самым популярным и надежным UNIX на основе криптографического сетевого протокола. Он может быть использован для безопасной передачи данных, удаленного входа на сервер, удаленного выполнения команд, а также многих других защищенных сетевых сервисов между двумя сетевыми серверами. Как правило, проверка подлинности пароля используется для подключения к удаленному серверу через SSH. В этом блоге уроке мы покажем вам, как войти на удаленный Linux без ввода пароля, используя ключи SSH. Этот метод является более безопасным, чем с помощью пароля.
Прежде всего, нам нужно сгенерировать открытые и закрытые ключи. Мы будем использовать RSA (Rivest-Shamir-Adleman) криптосистемы.
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): PRESS ENTER
Enter passphrase (empty for no passphrase): PRESS ENTER
Enter same passphrase again: PRESS ENTER
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
4a:91:e0:19:89:37:41:ce:3e:ff:56:2c:02:eb:65:cb root@LOCALSERVER
The key's randomart image is:
+--[ RSA 2048]----+
| o=o |
| .+++ . |
| .=.o |
| .. . |
| oo. S. |
| .++.. o |
| . +oo o |
| . E.. |
| .. |
+-----------------+
Это позволит создать 2048 бит открытых и закрытых ключей в каталоге /root/.ssh/ на вашем сервере
ls /root/.ssh/
id_rsa id_rsa.pub
Создайте новый каталог ‘.ssh’ на удаленном сервере
ssh root@REMOTE_SERVER mkdir -p .ssh
Скопируйте только что созданный ключ на удаленный сервер, на который вы хотите заходить по SSH без пароля
cat /root/.ssh/id_rsa.pub | ssh root@REMOTE_SERVER 'cat >> /root/.ssh/authorized_keys'
Изменение разрешений для открытого ключа и каталога .ssh
ssh root@REMOTE_SERVER "chmod 700 .ssh; chmod 600 .ssh/authorized_keys"
Теперь войдите на удаленный сервер и настройте сервер SSH для принятия ключа аутентификации. Откройте файл конфигурации SSH
nano /etc/ssh/sshd_config
И убедитесь, что следующие три варианта не закомментированы, ‘RSAAuthentication’ и ‘PubkeyAuthentication’ установлены в ‘yes’.
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
Сохраните изменения и перезапустите сервер SSH
/etc/init.d/sshd restart
Это все. Вы должны быть войти на удаленный сервер без пароля
ssh REMOTE_SERVER