Ваша цель
Вы хотите использовать Linux и OpenSSH для автоматизации Ваших повседневных
задач. Следовательно Вам необходим автоматический вход в систему из компьютера
A
/ учётная запись a
на комьютер B
/
учётная запись b
. И Вам не хотелось бы вводить пароль, потому что
вы хотите вызывать ssh
из сценария.
Как это сделать
Для начала, войдите в систему компьютера A
под именем
a
и сгенерируйте пару ключей аутентификации. При этом не вводите
пароль.
a@A ~ $ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa):
Created directory '/home/a/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/id_rsa.pub.
The key fingerprint is:
3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| . |
| . o|
| S o .Eo|
| o * = o.|
| = B + o|
| = + oo..|
| o o. o=|
+-----------------+
Теперь используя ssh
создайте каталог ~/.ssh
на
компьютере B
под именем b
. Эта директория может уже
существовать, что есть хорошо:
a@A ~ $ ssh b@B mkdir -p ~/.ssh
b@B's password:
И наконец добавьте открытый ключ шифрования учётной записи a
в
файл b@B:.ssh/authorized_keys
, введя пароль последний раз:
a@A ~ $ cat ~/.ssh/id_rsa.pub | ssh b@B 'cat >> ~/.ssh/authorized_keys'
b@B's password:
С этого момента вы можете входить в компьютер B
под именем
b
из компьютера A
под именем a
без
надобности вводить пароль:
a@A ~ $ ssh b@B hostname
B
В зависимости от вашей версии Вашего SSH, Вам возможно потребуется:
- поместить открытый ключ шифрования в файл
~/.ssh/authorized_keys2
; - изменить параметры доступа папки
~/.ssh
на 700; - изменить параметры доступа файла
~/.ssh/authorized_keys2
на 640.
Comments