java - 使用 SSHJ 时进行 Sudo 访问

标签 java ssh remote-access sshj

我正在编写一个 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/

相关文章:

java - 从java在远程机器上运行linux命令

java - 如何仅在 JTable 中的特定单元格中设置 JComboBox

java - 将内部 HashMap 类型强制转换为 Map

java - Bukkit - 如何在项目传说中创建 .replace (字符串列表)

java - (改造)找不到类崩溃应用程序的转换器

c# - MySQL 和 Unity 登录

linux - 如何将脚本运行到远程机器

git - Git:无法找到 'ssh'的远程帮助器

c# - 将 Linux 日期时间转换为 Windows 本地日期时间格式

macos - 无法使用 XQuartz mac 打开 GUI 应用程序