上面已经验证了通过密钥方式访问SSH Server是可行的,并且给自己搭建了一个测试环境,下面就开始我最终的目的:java程序通过密钥访问。
1、工程引入jsch-0.1.42.jar,可以到http://www.jcraft.com/jsch/官方下载。
2、在官方的example中,有一个demo,类UserAuthPubKey,是使用密钥访问的,参考了下,我对其进行了修改,改为自动连接并使用SFTP协议显示当前路径,代码如下:
package Test.sftp;
import com.jcraft.jsch.*;
public class TestKeyAcc {
public static void main(String[] arg) {
String keyFile = "./id_rsa";
String user = "username";
String host = "127.0.0.1";
String passphrase = "111111";
int port = 22;
try {
JSch jsch = new JSch();
jsch.addIdentity(keyFile);
Session session = jsch.getSession(user, host, port);
// username and passphrase will be given via UserInfo interface.
UserInfo ui