我正在编写一个 Java 程序,它可以以编程方式 SSH 连接到任何远程机器并执行命令。我正在重新使用现有的 Java 库来执行此操作:https ://github.com/shikhar/sshj
我遇到的问题是弄清楚如何 sudo 切换用户:
“sudo su - [此处的用户名]”。
如果您在终端中手动运行此程序,系统将提示您输入密码。据我了解,如果您在 sudoers 文件下,并且您输入了正确的密码,您将能够运行该命令来切换用户。我不想让用户必须输入他们的密码。理想情况下,该程序根本不需要任何人为干预即可运行。
我想要实现的是:以编程方式通过套接字发送密码,这样用户就不必将其输入标准输入。如果用户可以使用他的凭据登录到远程机器,程序应该能够获取在这些相同的凭据上,并在 sudo 要求用户输入密码时将其传递。
谷歌搜索了一段时间后,我不知道如何使用这个库来实现这一点。请记住,我并不是 SSH 底层细节方面的专家。有人对这个有想法吗?
多谢你们。