有人能给我一个使用SSHJ进行公钥认证的例子吗?我意识到这个问题基本上与私有/公钥认证的ssh示例完全相同,但是作者的答案/sf/users/8844251/指的是一个不再存在的Google用户组,我就是无法让它工作.
谢谢!菲尔
我有一个看起来像SSHJ测试中的pem文件(虽然我没有看到它被引用):https://github.com/shikhar/sshj/blob/master/src/test/resources/hostkey.pem.只是尝试通过pem文件验证到EC2实例(读作字符串),但有麻烦.有人做过吗?
SSHClient ssh = new SSHClient();
ssh.connect("ec2-XXXXXXX.compute-1.amazonaws.com");
ssh.authPublickey("ubuntu", getPemAsString("/Users/me/ec2.pem"));
final Session session = ssh.startSession();
session.exec("echo -e \"test\" >> /home/ubuntu/testfile");
Run Code Online (Sandbox Code Playgroud)
错误如下:
INFO [main] (TransportImpl.java:152) - Client identity string: SSH-2.0-SSHJ_0_8
INFO [main] (TransportImpl.java:161) - Server identity string: SSH-2.0-OpenSSH_5.8p1 Debian-7ubuntu1
INFO [main] (KeyExchanger.java:195) - Sending SSH_MSG_KEXINIT
INFO [reader] (KeyExchanger.java:357) - Received SSH_MSG_KEXINIT
INFO [reader] (AbstractDHG.java:110) - Sending SSH_MSG_KEXDH_INIT
INFO [reader] (KeyExchanger.java:370) - Received kex followup data
INFO [reader] (AbstractDHG.java:120) - Received SSH_MSG_KEXDH_REPLY
ERROR [reader] (TransportImpl.java:570) - Dying because - …Run Code Online (Sandbox Code Playgroud)