ppk-sftp用证书文件登录报algorithm negotiation fail

问题描述

sftp用证书文件登录报algorithm negotiation fail

请教各位大神,我要使用sftp传输文件,可以再登录这块出现了问题几天都没找到解决方法
开发语言C# 用的是网上开源的Tamir.SharpSSH.dll
对方提供了host name和user name
用工具PuTTY在本机生成了2个文件 public key和private key
public key已传给对方加过白名单了
用工具WinSCP 输入host name 和user name再传入private key file可以登录连上对方

但是用网上开源的Tamir.SharpSSH.dll和代码连击不上

这是登录的代码

    private Session m_session;
    private Channel m_channel;
    private ChannelSftp m_sftp;

    //host:sftp地址   user:用户名   pwd:密码
    public Helper(string host, string user, string pwd, string privateKey)
    {
        string[] arr = host.Split(':');
        string ip = arr[0];
        int port = 22;
        if (arr.Length > 1) port = Int32.Parse(arr[1]);

        JSch jsch = new JSch();

        string passphrase = "";
        if (privateKey != null && !"".Equals(privateKey))
        {
            if (passphrase != null && !"".Equals(passphrase))
            {
                //设置带口令的密钥
                jsch.addIdentity(privateKey, passphrase);
            }
            else
            {
                //设置不带口令的密钥
                jsch.addIdentity(privateKey);
            }
        }
        m_session = jsch.getSession(user, ip, port);
        MyUserInfo ui = new MyUserInfo();
        ui.setPassword(pwd);
        m_session.setUserInfo(ui);

    }

    //登录验证信息
    public class MyUserInfo : UserInfo
    {
        String passwd;
        public String getPassword() { return passwd; }
        public void setPassword(String passwd) { this.passwd = passwd; }

        public String getPassphrase() { return null; }
        public bool promptPassphrase(String message) { return true; }

        public bool promptPassword(String message) { return true; }
        public bool promptYesNo(String message) { return true; }
        public void showMessage(String message) { }

    }

    //SFTP连接状态
    public bool Connected { get { return m_session.isConnected(); } }

    //连接SFTP
    public bool Connect()
    {
        try
        {
            if (!Connected)
            {
                m_session.connect();
                m_channel = m_session.openChannel("sftp");
                m_channel.connect();
                m_sftp = (ChannelSftp)m_channel;
            }
            return true;
        }
        catch
        {
            return false;
        }
    }

private key是个.ppk的文件
登录时会报异常

用PuTTY工具 把.ppa文件转成OpenSSH key
再去执行登录报异常

实在没方向了 不知道怎么去做登录了 求做过C#用文件 在程序中登录大神们指点下

解决方案

你的private_key.ppk文件不正确,验证没有通过

时间: 2024-09-08 11:33:13

ppk-sftp用证书文件登录报algorithm negotiation fail的相关文章

文件传输-java使用SSH方式上传报错:Algorithm negotiation fail

问题描述 java使用SSH方式上传报错:Algorithm negotiation fail java用jsch实现文件传输(SSH形式),但是好像本地和服务器加密方式不一致,一直报错: com.jcraft.jsch.JSchException: Algorithm negotiation fail 解决方案 如果是已form表单中的上传.需要改form的属性enctype( 属性规定在发送到服务器之前应该如何对表单数据进行编码.) 改属性默认值:application/x-www-form

sftp-JSCH连接SFTP服务Algorithm negotiation fail

问题描述 JSCH连接SFTP服务Algorithm negotiation fail JAVA环境:java version ""1.6.0_45""Java(TM) SE Runtime Environment (build 1.6.0_45-b06)Java HotSpot(TM) Server VM (build 20.45-b01 mixed mode) jsch-0.1.42.jar SFTP环境:OpenSSH_6.7p1 OpenSSL 1.0.1j

JSch连接SSH问题Exception:Algorithm negotiation fail

使用Jenkins配置完远程SSH服务器,发生无法连接问题,查看Log后找到 [SSH] Exception:Algorithm negotiation fail     com.jcraft.jsch.JSchException: Algorithm negotiation fail     at com.jcraft.jsch.Session.receive_kexinit(Session.java:520)     at com.jcraft.jsch.Session.connect(Se

sftp下载zip文件-java从sftp上下载到本地磁盘的zip文件读取不了,请大家帮忙解答下,谢谢!

问题描述 java从sftp上下载到本地磁盘的zip文件读取不了,请大家帮忙解答下,谢谢! 从sftp上下载到本地的zip文件是没问题的,用压缩工具打开能查看里面的文件,为什么就是读取不了呢? java从sftp下载zip文件到本地磁盘代码: import java.io.InputStream; import java.util.Date; import com.ibm.gbs.ai.portal.framework.util.DateUtils; import com.jcraft.jsch

auth fail-JSCH连接SFTP服务报错: Auth fail

问题描述 JSCH连接SFTP服务报错: Auth fail 手动测试SFTP连接OK,程序JSCH连接SFTP就报错com.jcraft.jsch.JSchException: Auth fail.已经确认了N遍,用户名/密码/ip配置绝对没错.求各位大神积极发言帮忙解决!!不胜感激!! 解决方案 请尝试 首先确保服务器上的/etc/ssh/sshd_config中的PasswordAuthentication设置为 PasswordAuthentication yes 如果还不行,可以参考s

苹果官网证书文件,待研究

苹果官网证书文件,待研究 http://www.apple.com/certificateauthority/   导读:MDM 证书申请流程(vendor及customer)整个流程分为两部分:vendor.customer 一.申请Vendor 1.成为一个 MDM Vendor (1)首先你需要拥有一个 Apple Enterprise account($299/年): (2)访问 https://developer.apple.com/contact/submit.php,在这里你可以申

FTPS(基于 SSL 的FTP)与 SFTP(SSH 文件传输协议)对比

SSH File transfer protocol(SFTP)也称为通过安全套接层的文件传输协议File Transfer protocol via Secure Socket Layer, 以及 FTPS 都是最常见的安全 FTP 通信技术,用于通过 TCP 协议将计算机文件从一个主机传输到另一个主机.SFTP 和 FTPS 都提供高级别文件传输安全保护,通过强大的算法(如 AES 和 Triple DES)来加密传输的数据. 但是 SFTP 和 FTPS 之间最显着的区别是如何验证和管理连

点击登录报如下错误,测试loginDao报如下错误

问题描述 点击登录报如下错误,测试loginDao报如下错误 测试代码为: package cn.xuxu.login.dao; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.xuxu.login.entity.User_XuXu; public class tes

Windows 7登录时出现“您已使用临时配置文件登录” 报错信息问题分析

Windows 7登录时出现"您已使用临时配置文件登录" 报错,如下所示:   原因分析: 出现上述提示是用户配置文件损坏导致无法登录到之前的账户,产生损坏的原因可能有杀毒软件误杀.第三方软件设置有误等原因.这个时候系统会生成一个临时的账户,我们对该账户的任何设置以及保存的文件,在重启之后都会失效.所以请不要在该账户中保存文件.通常情况该问题在我们重新启动计算机之后会解决,如果重启多次都是同样的结果,那么很有可能是之前使用的账户已经损坏,导致无法修复. 解决方案: 一.新建管理账号解决