为了账号安全,请及时绑定邮箱和手机立即绑定

如何使ssh接收来自stdin的密码

/ 猿问

如何使ssh接收来自stdin的密码

12345678_0001 2019-12-04 12:40:10

如何使SSH从stdin读取密码,默认情况下它不这样做?



查看完整描述

3 回答

?
慕的地6264312

TA贡献1670条经验 获得超5个赞

根据这篇文章,您可以执行以下操作:


创建一个使用SSH_ASKPASS打开ssh会话的命令(在man ssh上查找SSH_ASKPASS )


$ cat > ssh_session <<EOF

export SSH_ASKPASS="/path/to/script_returning_pass"

setsid ssh "your_user"@"your_host"

EOF

注意:为了避免ssh尝试在tty上询问,我们使用setsid


创建一个返回密码的脚本(注意echo“ echo”)


$ echo "echo your_ssh_password" > /path/to/script_returning_pass

使它们可执行


$ chmod +x ssh_session

$ chmod +x /path/to/script_returning_pass

试试吧


$ ./ssh_session

请记住,ssh代表安全外壳,如果将用户,主机和密码存储在纯文本文件中,则会误导该工具,从而可能造成安全漏洞


查看完整回答
反对 回复 2019-12-04
?
神不在的星期二

TA贡献1621条经验 获得超4个赞

正在恢复的旧帖子...

我在寻找完全相同的问题的解决方案时找到了这个,我发现了一些东西,希望有人有一天会发现它有用:

  1. 安装ssh-askpass程序(apt-get,yum ...)

  2. 设定SSH_ASKPASS变数(export SSH_ASKPASS=/usr/bin/ssh-askpass

  3. 从终端打开一个新的ssh连接,没有未定义的TERMINAL变量(setsid ssh user@host

这看起来很简单,很安全,但是还没有检查(仅在本地安全上下文中使用)。

我们到了。


查看完整回答
反对 回复 2019-12-04

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信