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
PS. Если вам понравился этот пост пожалуйста поделитесь им с друзьями в социальных сетях помощью кнопок на левой стороне поста или просто оставьте комментарий ниже. Заранее благодарю.