如何使用sshj java api连接用户名和密码的远程机器?
我试过这段代码.这段代码有什么问题?
final SSHClient ssh = new SSHClient();
ssh.connect("192.168.0.1");
ssh.authPassword("abcde", "fgh".toCharArray());
try {
final Session session = ssh.startSession();
try {
final Command cmd = session
.exec("cd /home/abcde/Desktop/");
System.out.println(IOUtils.readFully(cmd.getInputStream())
.toString());
cmd.join(5, TimeUnit.SECONDS);
System.out.println("\n** exit status: " + cmd.getExitStatus());
} finally {
session.close();
}
} finally {
ssh.disconnect();
}
Run Code Online (Sandbox Code Playgroud)
它抛出以下错误.
net.schmizz.sshj.transport.TransportException:[HOST_KEY_NOT_VERIFIABLE]无法验证
ssh-rsa与指纹主机密钥********用于192.168.0.1在端口22
小智 10
您可以通过实现HostKeyVerifier来解决您的问题
class NullHostKeyVerifier implements HostKeyVerifier {
@Override
public boolean verify(String arg0, int arg1, PublicKey arg2) {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
并将此伪实现添加到您的SSHClient实例配置:
...
final SSHClient ssh = new SSHClient();
ssh.addHostKeyVerifier(new NullHostKeyVerifier());
...
Run Code Online (Sandbox Code Playgroud)