1

信頼できる接続を持つ2つのサーバーがあります。Host Key Verification なしで ssh 経由で接続して SFTP 経由でファイルを転送したい。

Java 1.7 と Redhat Linux OS を使用しています。

以前は、以下のように ssh に接続できる j2ssh-core0.2.9.jar を使用していました。

SshConnectionProperties properties = new SshConnectionProperties();
SshClient ssh = new SshClient();            
properties.setHost(host);
properties.setPort(port);               
ssh.setSocketTimeout(readTimeOut);
ssh.connect(properties,new IgnoreHostKeyVerification());    

j2sshマーベリックでは、

        SshConnector con = SshConnector.createInstance();
        con.getContext().setHostKeyVerification(
                new ConsoleKnownHostsKeyVerification());
        con.getContext().setPreferredPublicKey(
                Ssh2Context.PUBLIC_KEY_SSHDSS);
        SocketTransport t = new SocketTransport(hostname, port);
        t.setTcpNoDelay(true);
        SshClient ssh = con.connect(t, username);
        Ssh2Client ssh2 = (Ssh2Client) ssh;

j2ssh maverick でこれを達成する方法を提案してください。

4

1 に答える 1

3

ホスト キーの検証なしで接続するには、J2SSH Maverick スニペットから次のコードを削除するだけです。

con.getContext().setHostKeyVerification(
                new ConsoleKnownHostsKeyVerification());

ただし、サーバーを認証するプロトコルの重要な部分を削除しています。中間者攻撃に完全にさらされることになります。

于 2015-09-11T17:58:17.123 に答える