Использование ssh-agent для подключения по ssh к удаленному серверу без ввода пароля

Для запуска сценариев не требуется разрешение «x». С точки зрения ядра это простые текстовые файлы, и не они запущены, а их интерпретатор. Если вы запускаете скрипт Python, вы запускаете двоичный файл Python, а не свой something.py.

Но вам нужен флаг r в сценарии, потому что интерпретатор должен иметь возможность прочитать сценарий, чтобы выполнить его.

И большинство интерпретаторов не будут выполнять скрипты без исполняемого флага. Хотя они могли бы, это соглашение о мерах предосторожности.

Таким образом, для сценариев вам нужны флаги r и x для их запуска.

0
27.11.2019, 01:55
1 ответ

Предположим, что сервер А — это ваш домашний компьютер, а сервер Б — удаленный сервер. Чтобы подключиться через открытый/закрытый ключ, нам нужно создать набор ключей на сервере ServerA. Обратите внимание, что я не вводил пароль.

ServerA $ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/admin/.ssh/id_rsa.
Your public key has been saved in /home/admin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:11tmtkpYjGCPLc8I59kV1QySEYfwpJt76BDMX01aTkU admin@localhost
The key's randomart image is:
+---[RSA 4096]----+
|         ..==+=E|
|           +o+.o|
|        o. o +  |
|       + = * O   |
|     . S B B B  |
|       + @ B *. |
|        = O +.  |
|         o o.   |
|         ..    |
+----[SHA256]-----+

Как видите, ключи были сгенерированы в /home/admin/.ssh/id _rsa (закрытый ключ )и /home/admin/.ssh/id _rsa.pub (открытый ключ ).

Теперь мы входим на сервер ServerB и добавляем открытый ключ с сервера A в авторизованные ключи _, расположенные в ключах ~/.ssh/authorized _.

ServerA $ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDP4BIiaHUm6Ow9SGFOdHpsaAu2odnBLfDu5YjwQeESLe7ubfQ62v21PXKAJUVS0ZcAN7KfAfHv+f8Los8GE7NhAJUeOB18YpaQohLVaajKb0pSJnAfcYMqH38Ouq3Q23GA61ZqUF4o3pJpRf9O2V/qpIkGQtMZ1/EbYApvh0y+MSlmrDHNjm6n6LO1P31WqsAwzTlZilcaDJTDu3ILW+bd+b1LzMr2oQUPnrc2YIiGRt8PvvM5YcGfN9/4D1vKyLNgF3c+KhbEapsoxfsGmEl1Z+jR/ldep0jwEh7XVXAMrLWhtUdi/a40R0Zisj3b27gfrQLmEMBOS4X0nfDJ9/QoxVl16SwZWxFuDX1xV/n2XIAg1OQ== admin@localhost

Скопируйте и вставьте вывод сервера A в авторизованные ключи _сервера B.

ServerB $ cat ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDP4BIiaHUm6Ow9SGFOdHpsaAu2odnBLfDu5YjwQeESLe7ubfQ62v21PXKAJUVS0ZcAN7KfAfHv+f8Los8GE7NhAJUeOB18YpaQohLVaajKb0pSJnAfcYMqH38Ouq3Q23GA61ZqUF4o3pJpRf9O2V/qpIkGQtMZ1/EbYApvh0y+MSlmrDHNjm6n6LO1P31WqsAwzTlZilcaDJTDu3ILW+bd+b1LzMr2oQUPnrc2YIiGRt8PvvM5YcGfN9/4D1vKyLNgF3c+KhbEapsoxfsGmEl1Z+jR/ldep0jwEh7XVXAMrLWhtUdi/a40R0Zisj3b27gfrQLmEMBOS4X0nfDJ9/QoxVl16SwZWxFuDX1xV/n2XIAg1OQ== admin@localhost

Теперь загрузите агент ssh -на serverA и добавьте закрытый ключ

eval $(ssh-agent)
ServerA $ ssh-add ~/.ssh/id_rsa
Identity added: /home/admin/.ssh/id_rsa (/home/admin/.ssh/id_rsa)

ServerA $ ssh admin@someip.com
The authenticity of host '[someIP.com]:2220 ([xx.xxx.xxx.xxx]:2220)' can't be established.
ECDSA key fingerprint is SHA256:K6nMI2Dxb7t6oj00HlKmPCCuGorgQoBJCeXB31B9VTY.
ECDSA key fingerprint is MD5:aa:20:4f:08:bb:5d:c5:8e:fd:cb:4c:5f:b9:3b:44:59.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[someIP.com]:2220 ([xx.xxx.xxx.xxx]:2220)' (ECDSA) to the list of known hosts.
Last login: Tue Nov 26 21:20:14 2019
admin@mail ~]$
0
28.01.2020, 03:05

Теги

Похожие вопросы