我的ssh配置文件中有如下所示的内容。我将不得不将相同的配置设置为我的Jsch会话。 Jsch支持设置配置如下
session.setConfig(String name, String value);
session.setConfig(HashTable config);
session.setConfig(Properties config);
但似乎没有一个支持分层嵌套设置(即仅适用于一系列主机的设置)
Host git.*
User git
ProxyCommand ssh -q github.example.com nc git %p
打开其他建议,例如创建SSH隧道或其他建议。
答案 0 :(得分:9)
您可能会误以为Jsch是ssh
命令行实用程序的java版本。 Jsch是SSH协议的实现。您可以使用它来构建命令行实用程序,但它不会实现与协议本身无关的命令行实用程序的每个功能。
Here is a sample page列出了Jsch接受的配置选项。您会注意到的一件事是该列表看起来不像the ssh config options。如果你想支持ssh风格的选项,你可能会发现有必要编写自己的代码来解释和实现它们。
要实现特定于主机的选项,您的客户端程序必须知道它连接到哪个主机以及应该将哪些选项应用于该主机。
关于默认用户,远程用户名是您在调用函数打开SSH会话时代码将提供给Jsch的参数。如果您想拥有默认用户功能,则必须在代码中编写该功能。