Навигационная цепочка

SSH login без пароля

By ValkaTR, 17 апреля, 2023

Ваша цель

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