2014-08-27 260 views
4

我在我的ssh配置文件中显示如下。我将不得不将相同的配置设置为我的Jsch会话。 Jsch支持设置CONFIGS如下Jsch session配置

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

你在这里要求什么 - 如何做与jsch相当的proxycommand,或如何使用jsch做主机特定的配置? – Kenster 2014-08-31 23:50:42

+0

@Kenster its both ..设置主机特定命令,其中包括设置ProxyCommand和设置默认用户 – 2014-09-01 04:16:10

回答

9

您可能会因为误解Jsch是ssh命令行实用程序的java版本而感到痛苦。 Jsch是SSH协议的一个实现。您可以使用它来构建命令行实用程序,但它不会实现与协议本身无关的命令行实用程序的每个功能。

Here is a sample page列出Jsch接受的配置选项。有一件你会注意到的是,该列表看起来不像the ssh config options。如果你想支持ssh风格的选项,你可能会发现有必要编写你自己的代码来解释和实现它们。

要实现特定于主机的选项,客户端程序必须知道它连接的是哪个主机,以及哪个选项应该应用于该主机。

关于默认用户,远程用户名是您的代码在调用函数打开SSH会话时提供给Jsch的参数。如果你想有一个默认的用户功能,你必须将这个功能写入你的代码。