Пост

SSH авторизация без пароля или по ключу

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

На локальной машине (OS Linux) генерируем ключ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ ssh-keygen -t rsa -b 2048 -f /home/user/.ssh/id_rsa -N ''
Generating public/private dsa key pair.
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
95:e8:94:83:74:5c:63:0a:e1:4d:6d:77:30:86:aa:7b user@u1zer
The key's randomart image is:
+--[ RSA 2048]----+
| +ooo+.+. |
| o *.=++... |
| o Boo. . |
| o.o |
| .S |
| . |
| . |
| . E |
| . |
+-----------------+

где

  • -t rsa - тип шифрования
  • -b 2048 - длина
  • -f /home/user/.ssh/id_rsa - каталог где будет сохранен ключ id_rsa и его публичный ключ id_rsa.pub
  • -N '' - позволяет указать ключевую фразу в строчке, в данном случае парольная фраза пустая

Получаем два файла id_rsa (приватный ключ) и id_rsa.pub (публичный ключ).

Копируем файл id_rsa.pub на сервер, куда мы будем подключаться

1
$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Также убедитесь что на сервере разрешена авторизация по ключу, для этого в файле /etc/ssh/sshd_config должны быть строки:

1
2
3
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Если на сервере вообще хотим запретить авторизацию по паролям, выставляем параметр в /etc/ssh/sshd_config

1
2
PasswordAuthentication no
PermitEmptyPasswords no

После всего этого можно и сделать проверку на локальной машине:

На локальной Windows-машине надо утилитой puttygen сконвертировать открытый ключ в свой формат, и в настройках putty указать этот сконвертированный файл

Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.