首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么sshpass仍然提示输入密码?

为什么sshpass仍然提示输入密码?
EN

Server Fault用户
提问于 2018-10-10 12:25:00
回答 2查看 6.2K关注 0票数 3

背景:

  • Debian扩展工作站试图将SSH扩展到许多GNU/Linux服务器(主要是RH和Debian)
  • 我无法更改远程服务器的SSH配置。
  • 我知道这并不理想,但我必须用登录+密码登录。没有SSH密钥,普通的旧登录/通行。我不能改变这个(不需要建议使用键+密码)
  • sshpass -V:"sshpass 1.06“

这个答案使用“ssphass”给出了一个有趣的提示。

我在‘~/..ssh/config’中设置的内容:

代码语言:javascript
复制
Host myServer
    HostName 12.34.56.78
    User bob
    ProxyCommand sshpass -v -pmyPassword ssh %r@%h -W localhost:%p

注:'-v‘sshpass选项只有在问这个问题时才能得到细节。

当我试图通过SSH连接时:

代码语言:javascript
复制
me@myWorkstation$ ssh myServer
SSHPASS searching for password prompt using match "assword"
SSHPASS read: bob@12.34.56.78's password:
SSHPASS detected prompt. Sending password.
SSHPASS read:

bob@12.34.56.78's password:

它永远都在等待着:-

如果我编辑'~/. SSH /config‘并替换'myPassword’(这是附加到这个SSH登录的真正密码,手动登录时工作):

代码语言:javascript
复制
Host myServer
    HostName 12.34.56.78
    User bob
    ProxyCommand sshpass -v -pnotMyPasswordAnymoreOhNo ssh %r@%h -W localhost:%p

这意味着:

代码语言:javascript
复制
me@myWorkstation$ ssh myServer
SSHPASS searching for password prompt using match "assword"
SSHPASS read: bob@12.34.56.78's password:
SSHPASS detected prompt. Sending password.
SSHPASS read:

Permission denied, please try again.
SSHPASS read: bob@12.34.56.78's password:
SSHPASS detected prompt, again. Wrong password. Terminating.
ssh_exchange_identification: Connection closed by remote host

我实际上得到了一个答复(尽管是否定的)。你能解释一下为什么吗?

EN

回答 2

Server Fault用户

发布于 2018-10-10 12:55:10

男人说:

首先也是最重要的是,sshpass的用户应该认识到ssh坚持只通过交互获得密码不是没有理由的。安全地存储密码几乎是不可能的,sshpass的用户应该考虑ssh的公钥身份验证是否提供相同的最终用户体验,同时减少麻烦并提高安全性。-p选项应该被认为是所有sshpass选项中最不安全的选项。所有系统用户都可以使用一个简单的"ps“命令在命令行中看到密码。Sshpass尽可能少地隐藏密码,但是这种尝试注定会在没有真正解决问题的情况下创建竞争条件。建议sshpass的用户使用其他更安全的密码传递技术之一。特别是,鼓励编写用于编程通信密码的程序的人使用匿名管道,并使用-d选项将管道的读取端传递给sshpass。

您可以尝试保存ENV变量并将其存储在那里,但这是错误的实践。

票数 1
EN

Server Fault用户

发布于 2021-08-14 14:13:24

如果有人有兴趣强迫ssh问一次密码,即sshpass提供密码并在错误情况下失败的时间,那么类似的事情会很好地工作。

代码语言:javascript
复制
sshpass -e ssh someuser@some.remote.server.com -o NumberOfPasswordPrompts=1 whoami

解释:

  • sshpass在使用-e选项时从$SSHPASS环境变量获取密码
  • ssh使用sshpass提供的密码,如果成功,则在远程服务器上运行whoami命令。
  • 如果密码是错误的,那么它不会提示密码,因为-o NumberOfPasswordPrompts=1迫使ssh只能提示一次,并且sshpass提供的错误密码已经使用了1次,因此焦点返回到终端。
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/934836

复制
相关文章

相似问题

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