我正在编写一个 Java 程序,它可以通过编程方式 SSH 到任何远程计算机并执行命令。我正在重新使用现有的 Java 库来执行此操作:https://github.com/shikhar/sshj
我遇到的问题是弄清楚如何 sudo 切换用户:
“sudo su - [此处的用户名]”。
如果您在终端中手动运行此命令,系统将提示您输入密码。据我了解,如果您位于 sudoers 文件下,并且正确输入密码,您将能够运行命令来切换用户。我不希望用户必须输入密码。理想情况下,该程序根本不需要任何人为干预即可运行。
我想要实现的是:以编程方式通过套接字发送密码,这样用户就不必将其输入到标准输入中。如果用户可以使用其凭据登录到远程计算机,则程序应该能够当 sudo 要求用户输入密码时,获取这些相同的凭据并将其传递给用户。
谷歌搜索了一段时间后,我不知道如何使用这个库来实现这一点。请记住,我并不是 SSH 底层细节方面的真正专家。有人对此有什么想法吗?
谢谢大家。
最佳答案
我们已经写了Overthere SSH/J 之上的库,它支持使用 sudo 登录,无论是否有密码提示。看一下它是否适合您的需求。
关于java - 使用 SSHJ 时进行 Sudo 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18858494/