我已经将远程ssh服务器配置为通过公钥对登录(仅)。我可以登录到服务器并使用ssh运行命令:
ssh me@my.server.home -i ~/.ssh/my_key echo fu我想使用parallel-ssh从pssh包向服务器发送命令。我使用-H选项指定服务器列表(一台服务器),-i在屏幕上打印结果,以及-A,这样程序就会要求输入密钥密码。文档指出,它能够使用-x或-X将参数向下传递到ssh。但是,以下命令都不起作用:
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'产出:
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命令中使用受密码保护的公钥呢?
发布于 2018-05-07 14:37:52
这是个小虫子在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'会起作用的。
https://askubuntu.com/questions/1032008
复制相似问题