无需 SSH 密钥即可记住输入过的 SSH 密码

无需 SSH 密钥即可记住输入过的 SSH 密码

我需要在不同的服务器上使用 SSH 进行大量工作,但不允许在远程服务器上存储公钥。所以我不能使用 SSH-Keys 和 SSH-Agent。

身份验证是通过 LDAP 进行的,因此密码始终相同。我希望每个会话输入一次密码,然后将其存储某处并将其用于所有进一步的连接。

我搜索了很多,找到的最好方法是将密码存储在环境变量中并使用 sshpass,如下所示:

SSHPASS=mypass sshpass -e ssh username@servername

但我不喜欢知道我的密码保存在环境变量中。有没有更好的方法来实现这一点?

答案1

听起来,事实并非如此。

我猜你可以将 sshpass 包装在脚本中,以避免在环境中有密码,但这样你就把它写在脚本中了。基本上,如果密码必须参与其中,你可能只需要处理它。

一种可能性是使用 SSH 证书而不是公钥,这样可以提供更高的粒度和控制力(请参阅https://www.digitalocean.com/community/tutorials/how-to-create-an-ssh-ca-to-validate-hosts-and-clients-with-ubuntu)。

Kerberos 似乎也符合所有人的要求,但 Kerberos 不一定是人们想要尝试的东西,我怀疑它是否会被认真考虑。但它几乎提供了你所寻求的那种妥协(没有公钥,但也可以在会话期间进行无密码登录)。

一个可以满足你的需求和服务器运营商的顾虑/政策的中间解决方案可能是这样的传送,它提供了一个跳转主机和相当强大的访问控制。

总结:听起来,如果您想避免泄露您的密码,您可能需要咬紧牙关,而最好的选择可能是尝试提出一个解决方案,以解决管理员对公钥的所有担忧。

相关内容