Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSch密钥身份验证异常身份验证失败_Java_Ssh_Jsch_Private Key - Fatal编程技术网

Java JSch密钥身份验证异常身份验证失败

Java JSch密钥身份验证异常身份验证失败,java,ssh,jsch,private-key,Java,Ssh,Jsch,Private Key,当我想要运行此代码块时,我得到一个异常身份验证失败: String remoteHostUserName = "me"; String remoteHostName = "xx.xxx.x.xx"; int port = 22; String key = "/home/me/.ssh/id_rsa"; String deployPath = "/home/me/Schreibtisch/ssh_example"; JSch jsch=new JSch(); //creating the id

当我想要运行此代码块时,我得到一个异常身份验证失败:

String remoteHostUserName = "me";
String remoteHostName = "xx.xxx.x.xx";
int port = 22;
String key = "/home/me/.ssh/id_rsa";

String deployPath = "/home/me/Schreibtisch/ssh_example";
JSch jsch=new JSch();

//creating the identity
jsch.addIdentity(key);
System.out.println("identity added ");

Session session=jsch.getSession(remoteHostUserName, remoteHostName, port);
System.out.println("session created.");
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
我不想说一句话

这里是
.ssh
文件夹的
ls-l

drwxrwx---2 root me 4096 Jul 27 16:01.ssh
最后是
.ssh
文件夹中的长列表:

-rwxrw----1 root me 416 Jul 27 15:51授权密钥
-rwxrw---1根我1675年7月27日15:49 id_rsa
-rwxrw---1 root me 416 Jul 27 15:49 id_rsa.pub
-rw-r--r--1根me 222 Jul 27 16:01已知的\u主机
我复制了
.pub
文件,并将其重命名为
authorized\u key

我还添加了一个记录器,结果如下:

INFO:kex:server->client aes128 ctr hmac-sha1无
信息:kex:客户端->服务器aes128 ctr hmac-sha1无
信息:SSH\u MSG\u KEX\u ECDH\u INIT已发送
信息:期待SSH\u MSG\u KEX\u ECDH\u回复
信息:ssh\u rsa\u验证:签名为真
警告:已将“xx.xxx.x.xx”(RSA)永久添加到已知主机列表中。
信息:SSH\u MSG\u已发送新密钥
信息:收到SSH\u MSG\u新密钥
信息:SSH\u消息\u服务\u请求已发送
信息:SSH\u消息\u服务\u接收
信息:可以继续的身份验证:公钥、键盘交互、密码
信息:下一个身份验证方法:公钥
信息:可以继续的身份验证:密码
信息:下一个身份验证方法:密码
信息:从xx.xxx.x.xx端口22断开连接
线程“main”com.jcraft.jsch.JSchException中出现异常:身份验证失败
位于com.jcraft.jsch.Session.connect(Session.java:512)
位于com.jcraft.jsch.Session.connect(Session.java:183)
位于SSHTestStandAlone.testConnection(SSHTestStandAlone.java:33)
位于SSHTestStandAlone.main(SSHTestStandAlone.java:11)
我想经过密钥认证后JSch想要正常的密码吗

下面是shell中ssh-v命令的输出:

下面是ssh-v命令的输出:

florian@florian-HP-EliteBook-8540w:~$ssh-vflorian@xx.xxx.x.xx
OpenSSH_6.7p1 Ubuntu-5ubuntu1,OpenSSL 1.0.1f 2014年1月6日
debug1:读取配置数据/etc/ssh/ssh\u config
debug1:/etc/ssh/ssh\u配置第19行:应用*
debug1:连接到xx.xxx.x.xx[xx.xxx.x.xx]端口22。
debug1:已建立连接。
debug1:key\u load\u public:没有这样的文件或目录
debug1:identity file/home/florian/.ssh/identity-type-1
debug1:key\u load\u public:没有这样的文件或目录
debug1:identity file/home/florian/.ssh/identity-cert-type-1
debug1:identity file/home/florian/.ssh/id\u rsa类型1
debug1:key\u load\u public:没有这样的文件或目录
debug1:identity file/home/florian/.ssh/id\u rsa-cert type-1
debug1:key\u load\u public:没有这样的文件或目录
debug1:identity file/home/florian/.ssh/id_dsa type-1
debug1:key\u load\u public:没有这样的文件或目录
debug1:identity file/home/florian/.ssh/id_dsa-cert type-1
debug1:启用协议2.0的兼容模式
debug1:本地版本字符串SSH-2.0-OpenSSH_6.7p1 Ubuntu-5ubuntu1
调试1:远程协议版本2.0,远程软件版本OpenSSH_6.7p1 Ubuntu-5ubuntu1
debug1:match:OpenSSH_6.7p1 Ubuntu-5ubuntu1 pat OpenSSH*compat 0x04000000
debug1:SSH2\u MSG\u KEXINIT已发送
debug1:SSH2\u MSG\u KEXINIT已收到
debug1:kex:server->client aes128 ctr umac-64-etm@openssh.com没有一个
调试1:kex:客户端->服务器aes128 ctr umac-64-etm@openssh.com没有一个
debug1:发送SSH2\u MSG\u KEX\u ECDH\u INIT
debug1:需要SSH2\u MSG\u KEX\u ECDH\u回复
debug1:服务器主机密钥:ECDSA
xx:xx:xx:xx:xx:xx:xx
无法确定主机“xx.xxx.xx.x(xx.xxx.x.xx)”的真实性。
ECDSA密钥指纹为
xx:xx:xx:xx:xx:xx:xx。
是否确实要继续连接(是/否)?对
警告:已将“xx.xxx.x.xx”(ECDSA)永久添加到已知主机列表中。
debug1:SSH2\u MSG\u已发送新密钥
debug1:应为SSH2\u MSG\u NEWKEYS
debug1:SSH2\u MSG\u接收到新密钥
debug1:服务器不允许漫游
debug1:SSH2\u消息\u服务\u请求已发送
debug1:SSH2\u消息\u服务\u接收
debug1:可以继续的身份验证:公钥、密码
debug1:下一个身份验证方法:公钥
debug1:正在尝试私钥:/home/florian/.ssh/identity
debug1:提供RSA公钥:/home/florian/.ssh/id\u RSA
debug1:可以继续的身份验证:公钥、密码
debug1:正在尝试私钥:/home/florian/.ssh/id\u dsa
debug1:下一个身份验证方法:密码
非常感谢你和亲切的问候,
SirSandmann

除了您之外,任何人都不能写入
.ssh
文件夹和
授权密钥
文件

一定要这样做

chmod 700 .ssh
chmod 600 .ssh/authorized_keys

旁注(与问题无关):

您的私钥除了您之外,其他人无法读取。你这样会危及你的安全

还请注意,您不需要连接到服务器的
~/.ssh
文件夹中的私钥


下一次,首先使用GUI客户端测试身份验证,以检查您的客户端是否设置正确