这个错误表明导入的private key文件不是XShell所支持的,有三种可能:
- 将Public Key当成Private Key导入。。。
- 使用Putty的ppk文件,囧,请使用PUTTY的puttygen.exe转换成OPENSSH格式的
- Key文件有多种格式(SSH1-RSA, SSH2-RSA, SSH2-DSA, SSH.COM, OPENSSH2-RSA, OPENSSH2-DSA, PPK, SSH2-IETF SECSH[RSA,DSA]),目前看来XShell支持SSH1-RSA, OpenSSH2-RSA, OpenSSH2-DSA, SSH.COM, NetSarang User Key。。。所以如果使用了标准的SSH2-RSA, SSH2-DSA这两种PrivateKey的同学请试着转换为OpenSSH格式(SecureCRTの場合:Tools->Convert Private Key to OpenSSH Format)后再导入。
注:
XShell可以生成OPENSSH2-RSA, OPENSSH2-DSA, SSH2-IETF SECSH(RSA,DSA)这几种格式的KEY文件并能识别,并能互相转换
SecucreCRT可以生成SSH1-RSA, SSH2-RSA, OPENSSH2-RSA, OPENSSH2-DSA这几种格式的KEY文件,并能互相转换
puttygen.exe可以生成SSH1-RSA, PPK, OPENSSH2-RSA, OPENSSH2-DSA, SSH.COM格式的KEY文件,除了SSH1格式都能进行互相转换,不过如果遇到如下报错,请更新你的puttygen.exe即可(http://winscp.net/forum/viewtopic.php?t=8324)
“Couldn\'t load private key (ciphers other than DES-EDE3-CBC not supported)”
由此可见OPENSSH2格式的key文件比较通用一些。
使用PUTTY的puttygen.exe转换成OPENSSH格式
直接导入报错如下:
解决办法,如下:
1、找到Putty安装目录下的PUTTYGEN.EXE,打开它,选择“Conversions”->“Import key”,选择要导入的ppk文件。
2、导入后,选择“Conversions”->“Export OpenSSH key”,导出一个自己命名的文件,这个文件默认没有后缀名。导出时提示没有设置密码,点击“是”或者自己设置一个密码吧。
3、在Xshell中新建一个Session或修改已有的Session配置(Properties),找到“Connection”->“Authentication”,Method选择“Public Key”,User Name填写要登录的用户名,点击Browse按钮,然后Import刚才Putty导出的文件,由于这个文件我们刚才没有设置密码,所以Passphrase不用填,完成后如下。这样就由使用Putty登录转成使用自己熟悉的Xshell登录了。