Ваша цель
Вы хотите использовать 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