我在 UNIX 计算机上有一个文本文件,其中包含有人可能用来连接它的 SSH 用户名和密码。
如何使用 Java 验证用户名和密码是否有效?
我是否尝试使用 Runtime.exec() 通过 SSH 连接到同一台计算机?
我可以 grep 查找用户/etc/passwd。但是,密码被隐藏了。
如有任何建议,我将不胜感激。
最佳答案
也许问题可以扩展到“从 Java 验证 UNIX 凭据”,因为所解释的机制并不真正依赖于 ssh。
这是我的一个更好的类似 Expect 的替代方案(例如使用 ProcessBuilder ),而不使用网络堆栈的开销:
su -u 用户名 -c echo
只需检查退出状态即可知道答案。 (奖励点:su 存在于所有 UNIX 操作系统上,甚至可能位于 PATH 上,并且对于 LDAP 等其他外部身份验证系统也有效)。
关于java - 在 Unix 上使用 Java 验证 SSH 凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/836281/