我正在编写一个Java程序,可以通过编程方式SSH到任何远程计算机并执行命令。我正在重用现有的Java库来执行此操作:https://github.com/shikhar/sshj
我遇到的问题是弄清楚如何sudo切换用户:
“sudo su - [username here]”。
如果在终端中手动运行,则会提示您输入密码。据我了解,如果您在sudoers文件下,并且正确键入密码,您将能够运行该命令来切换用户。我不想让用户输入他们的密码。理想情况下,该计划不应该要求任何人为干预才能运行。
我想要实现的是:以编程方式通过套接字发送密码,这样用户就不必将其输入标准版。如果用户可以使用他的凭据登录到远程机器,程序应该能够获取这些相同的凭据,并在sudo要求用户输入密码时将其传递。
谷歌搜索了一段时间后,我无法弄清楚如何使用此库实现此目的。请记住,我并不是SSH的低层细节的专家。有人对这个有什么想法吗?
谢谢你们。
答案 0 :(得分:4)
我们在SSH / J之上编写了Overthere库,它支持使用带有或不带密码提示的sudo登录。看看它是否符合您的需求。
答案 1 :(得分:1)
那应该不是问题。您可以将 sudo 配置为不需要某些用户的密码。看看sudo的文档和 sudoers 手册页。