首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带公钥的并行ssh

使用带公钥的并行ssh
EN

Ask Ubuntu用户
提问于 2018-05-04 14:24:39
回答 1查看 4.7K关注 0票数 4

我已经将远程ssh服务器配置为通过公钥对登录(仅)。我可以登录到服务器并使用ssh运行命令:

代码语言:javascript
复制
ssh me@my.server.home  -i ~/.ssh/my_key echo fu

我想使用parallel-sshpssh包向服务器发送命令。我使用-H选项指定服务器列表(一台服务器),-i在屏幕上打印结果,以及-A,这样程序就会要求输入密钥密码。文档指出,它能够使用-x-X将参数向下传递到ssh。但是,以下命令都不起作用:

代码语言:javascript
复制
parallel-ssh -A -i -H "me@my.server.home" -X "-i ~/.ssh/my_key" 'echo fu'

产出如下:

代码语言:javascript
复制
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的文件。)

这个命令也不会成功:

代码语言:javascript
复制
 parallel-ssh -A -i -H "me@my.server.home" -x '-i ~/.ssh/my_key' 'echo fu'

产出:

代码语言:javascript
复制
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命令中使用受密码保护的公钥呢?

EN

回答 1

Ask Ubuntu用户

发布于 2018-05-07 14:37:52

这是个小虫子pssh程序中,它只是一个python脚本的集合。这些脚本通过解析ssh程序输出来与其进行接口。

让它工作的一种方法是你自己修吧dpkg -L pssh将列出与pssh包一起安装的所有文件。askpass_client.py是需要修改的文件。第67行是

代码语言:javascript
复制
if not prompt.strip().lower().endswith('password:'):

而且应该是:

代码语言:javascript
复制
if not ( prompt.strip().lower().endswith('password:') or 'enter passphrase for key' in prompt.strip().lower()):

然后命令

代码语言:javascript
复制
parallel-ssh  -A -i -H "me@my.server.home" -x "-i ~/.ssh/my_key"  'echo fu'

会起作用的。

票数 4
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1032008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档