当前位置: 首页 > 知识库问答 >
问题:

使用j2ssh maverick连接到ssh而不进行主机密钥验证

魏冷勋
2023-03-14

我有两个具有可信连接的服务器。我想通过不经主机密钥验证的ssh连接,通过SFTP传输文件

SshConnectionProperties properties = new SshConnectionProperties();
SshClient ssh = new SshClient();            
properties.setHost(host);
properties.setPort(port);               
ssh.setSocketTimeout(readTimeOut);
ssh.connect(properties,new IgnoreHostKeyVerification());    
        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;

共有1个答案

盖泽宇
2023-03-14

要在不验证主机密钥的情况下进行连接,只需删除J2SSH Maverick片段中的以下代码

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

但是,您正在删除对服务器进行身份验证的协议的一个重要部分。让你完全可以接受中间人的攻击。

 类似资料:
  • 我试图连接到localhost使用ssh键,但我仍然得到"Auth失败"错误。 以下是方法实现: 我使用linux终端创建了我的公钥/私钥对,如下所示: 我没有说任何短语。下一步: 最后 然后当我运行我的程序时,我得到一个错误: 有什么想法吗?我的密钥是OpenSSH类型,从行开始 "-----开始RSA私人密钥-----"

  • 问题内容: 我正在使用pysftp编写程序,它想针对验证SSH主机密钥。 终端程序使用PuTTY将其保存到Registry中。 如何调和pysftp和PuTTY之间的区别? 我的代码是: E:\Program Files (x86)\Anaconda3\lib\site-packages\pysftp__init__.py:61: UserWarning: Failed to load HostK

  • 使用PuTTY,终端程序将其保存到注册表。 如何协调pysftp和Putty之间的差异? 我的代码是:

  • 此代码引发异常。如何验证SSH指纹而不将其存储在文件中?我相信下面的代码是为公钥设计的。但带有SFTP服务器的客户端验证了指纹,但没有为我获取公钥。 代码基于使用PysFTP验证主机密钥。

  • 我使用这个代码https://gist.github.com/svett/b7f56afc966a6b6ac2fc作为起点。 使用它并将其指向cisco路由器会得到以下错误消息: 所以我又说: 到我的ssh.clientconfig,我得到了一个不同的错误: 拨号失败:SSH:握手失败:SSH:主机密钥没有通用算法;提供的客户端:[aes128cbcID],提供的服务器:[ssh-rsa] 这基本

  • 本文向大家介绍Linux系统使用用户密钥ssh主机访问,包括了Linux系统使用用户密钥ssh主机访问的使用技巧和注意事项,需要的朋友参考一下 使用用户密钥ssh主机,在安全性上要大大高于直接输入root 的密码,具体实现,请看下面的教程。 ps:使用root权限进行操作 1)先创建一个账户 执行后,/home 下生成一个名为lee的目录。目录的权限为700,所属组为wheel,所属用户为lee