java - 在 Unix 上使用 Java 验证 SSH 凭据

标签 java unix authentication ssh

我在 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/

相关文章:

java - 使用 dispatchevent 生成 mousemove 事件?

java - 是否有可能有一个可以执行 R 脚本的独立 spring boot jar ?

linux - 为什么 wc 命令比预期的多了一个字符?

linux - Perl 加密 STDIN 密码

android - 使用 HttpURLConnection 的 Android Jelly Bean 4.1 上的 HTTP 基本身份验证问题

java - 何时使用 ADDED、MODIFIED 和 REMOVED 的 DocumentChange.Type?

java - 如何在运行时使用 Annotation Processing API?

linux - 如何为以下内容编写 shell (.sh) 脚本

php - 使用 PHP/MySQL 登录中断并返回页面

apache - 本地主机 :8080 after starting the apache-tomcat server 中需要身份验证