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
После всего этого можно и сделать проверку на локальной машине:
1
$ ssh [email protected]
На локальной Windows-машине надо утилитой puttygen
сконвертировать открытый ключ в свой формат, и в настройках putty
указать этот сконвертированный файл