2010-07-21 41 views
7

Có thể tạo kết nối ssh với máy chủ bằng java không?Kết nối SSH Java

+2

Kiểm tra [http://stackoverflow.com/questions/3071760/ssh-connection-with-java/9019095#9019095] – World

+0

FWIW, tôi đã xem nhanh ở những người được liệt kê dưới đây và sshtools chỉ có sẵn theo giấy phép GPL. (jsch có sẵn dưới BSD và sshJ có sẵn dưới Apache.) – Mickalot

Trả lời

3

jschsshJ là cả hai khách hàng tốt. Cá nhân tôi sử dụng sshJ vì mã được ghi lại kỹ lưỡng hơn nhiều.

jsch được sử dụng rộng rãi, bao gồm trong nhật thực và kiến ​​apache. Tôi cũng đã có vấn đề với jsch và AES khóa mã hóa tư nhân, mà yêu cầu tái mã hóa trong 3DES, nhưng đó chỉ có thể là tôi.

+0

ok thư viện jsch hoạt động tốt và rất dễ thực hiện. Cảm ơn bạn vì câu trả lời. – Benni

1

Để kết nối với máy chủ Java, bạn cần triển khai SSHD (máy khách ssh không đủ). Bạn có thể thử Apache sshd,

http://mina.apache.org/sshd/

Vì sshd đang chạy trên hầu hết các hệ thống, một sự thay thế dễ dàng hơn là để kết nối đến máy chủ thông qua một đường hầm SSH.

2

Có, điều đó là có thể. Bạn có thể thử đoạn mã sau:

package mypackage; 
import com.jcraft.jsch.ChannelSftp; 
import com.jcraft.jsch.JSch; 
import com.jcraft.jsch.Session; 
import java.io.*; 

public class SSHReadFile 
    { 
    public static void main(String args[]) 
    { 
    String user = "user"; 
    String password = "password"; 
    String host = "yourhostname"; 
    int port=22; 

    String remoteFile="/home/john/test.txt"; 

    try 
     { 
     JSch jsch = new JSch(); 
     Session session = jsch.getSession(user, host, port); 
      session.setPassword(password); 
      session.setConfig("StrictHostKeyChecking", "no"); 
     System.out.println("Establishing Connection..."); 
     session.connect(); 
      System.out.println("Connection established."); 
     System.out.println("Crating SFTP Channel."); 
     ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp"); 
     sftpChannel.connect(); 
     System.out.println("SFTP Channel created."); 
     } 
    catch(Exception e){System.err.print(e);} 
    } 
    } 
+0

hoàn hảo. đã làm cho tôi. –

Các vấn đề liên quan