Я установил удаленный ssh-сервер для входа в систему через пару с открытым ключом (только). Я могу войти в сервер и запустить команды с помощью ssh:
ssh me@my.server.home -i ~/.ssh/my_key echo fu
Я бы хотел отправить команды на сервер, используя parallel-ssh из пакета pssh. Я использую параметр -H, чтобы указать список серверов (один сервер), -i для печати результатов на экране и -A, чтобы программа запрашивала пароль для ключа. В документации указано, что она способна передавать аргументы до ssh с помощью -x или -X. Однако ни одна из следующих команд не работает:
parallel-ssh -A -i -H "me@my.server.home" -X "-i ~/.ssh/my_key" 'echo fu'
вывод:
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[1] 17:03:35 [FAILURE] me@my.server.home Exited with error code 255
Stderr: Warning: Identity file ~/.ssh/my_key not accessible: No such file or directory.
Permission denied (publickey).
(я вижу файл с ll ~/.ssh/my_key.)
И эта команда преуспевает:
parallel-ssh -A -i -H "me@my.server.home" -x '-i ~/.ssh/my_key' 'echo fu'
output:
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[1] 17:15:06 [FAILURE] administrator@192.168.0.118 Exited with error code 255
Stderr: Enter passphrase for key '/home/local_user/.ssh/my_key':
Permission denied (publickey).
Этот второй полностью странный, так как man parallel-ssh утверждает, что опция -A «Запросить пароль и передайте его в ssh. Пароль может использоваться для разблокировки ключа или для аутентификации пароля. «
Итак, как использовать открытый ключ с защитой паролем внутри команды parallel-ssh?
Это ошибка в программе pssh, которая представляет собой всего лишь набор скриптов python. Эти сценарии прибегают к синтаксическому анализу выхода программы ssh для взаимодействия с ним.
Один из способов заставить его работать Это ошибка . dpkg -L pssh отобразит все файлы, установленные с пакетом pssh. askpass_client.py - файл, который нуждается в модификации. Строка 67 -
if not prompt.strip().lower().endswith('password:'):
и должна быть:
if not ( prompt.strip().lower().endswith('password:') or 'enter passphrase for key' in prompt.strip().lower()):
Тогда команда
parallel-ssh -A -i -H "me@my.server.home" -x "-i ~/.ssh/my_key" 'echo fu'
будет работать.
Это ошибка в программе pssh, которая представляет собой всего лишь набор скриптов python. Эти сценарии прибегают к синтаксическому анализу выхода программы ssh для взаимодействия с ним.
Один из способов заставить его работать Это ошибка . dpkg -L pssh отобразит все файлы, установленные с пакетом pssh. askpass_client.py - файл, который нуждается в модификации. Строка 67 -
if not prompt.strip().lower().endswith('password:'):
и должна быть:
if not ( prompt.strip().lower().endswith('password:') or 'enter passphrase for key' in prompt.strip().lower()):
Тогда команда
parallel-ssh -A -i -H "me@my.server.home" -x "-i ~/.ssh/my_key" 'echo fu'
будет работать.
Это ошибка в программе pssh, которая представляет собой всего лишь набор скриптов python. Эти сценарии прибегают к синтаксическому анализу выхода программы ssh для взаимодействия с ним.
Один из способов заставить его работать Это ошибка . dpkg -L pssh отобразит все файлы, установленные с пакетом pssh. askpass_client.py - файл, который нуждается в модификации. Строка 67 -
if not prompt.strip().lower().endswith('password:'):
и должна быть:
if not ( prompt.strip().lower().endswith('password:') or 'enter passphrase for key' in prompt.strip().lower()):
Тогда команда
parallel-ssh -A -i -H "me@my.server.home" -x "-i ~/.ssh/my_key" 'echo fu'
будет работать.