2

我正在编写一个 Java 程序,它可以以编程方式 SSH 连接到任何远程机器并执行命令。我正在重新使用现有的 Java 库来执行此操作:https ://github.com/shikhar/sshj

我遇到的问题是弄清楚如何 sudo 切换用户:

“sudo su - [此处的用户名]”。

如果您在终端中手动运行此程序,系统将提示您输入密码。据我了解,如果您在 sudoers 文件下,并且您输入了正确的密码,您将能够运行该命令来切换用户。我不想让用户必须输入他们的密码。理想情况下,该程序根本不需要任何人为干预即可运行。

我想要实现的是:以编程方式通过套接字发送密码,这样用户就不必将其输入标准输入。如果用户可以使用他的凭据登录到远程机器,程序应该能够获取在这些相同的凭据上,并在 sudo 要求用户输入密码时将其传递。

谷歌搜索了一段时间后,我不知道如何使用这个库来实现这一点。请记住,我并不是 SSH 底层细节方面的专家。有人对这个有想法吗?

多谢你们。

4

2 回答 2

4

我们在 SSH/J 之上编写了Overthere库,它支持在有或没有密码提示的情况下使用 sudo 登录。看看它是否适合您的需求。

于 2013-10-03T08:32:53.033 回答
1

那应该不是问题。您可以将sudo配置为不需要某些用户的密码。查看 sudo 的文档和sudoers手册页。

于 2013-09-17T19:58:09.407 回答