Использование parallel-ssh с открытым ключом

Я установил удаленный 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?

3
задан 13 May 2018 в 15:09

3 ответа

Это ошибка в программе 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'

будет работать.

2
ответ дан 17 July 2018 в 15:14

Это ошибка в программе 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'

будет работать.

2
ответ дан 20 July 2018 в 15:40

Это ошибка в программе 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'

будет работать.

2
ответ дан 23 July 2018 в 16:11

Другие вопросы по тегам:

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