SSH连接Java

是否可以使用java与服务器建立ssh连接?

是的,我在Java应用程序中使用http://sourceforge.net/projects/sshtools/通过SSH连接到UNIX服务器,它工作得很好。

jsch和sshJ都是好客户。 我个人使用sshJ,因为代码记录得更彻底。

jsch已广泛使用,包括在eclipse和apache ant中。 我也遇到过jsch和AES加密私钥的问题,需要在3DES中重新加密,但这可能只是我。

对的,这是可能的。 您可以尝试以下代码:

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);} } } 

要建立与Java服务器的连接,您需要实现SSHD(ssh客户端是不够的)。 你可以试试Apache SSHD,

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

由于sshd已经在大多数系统上运行,因此更容易的替代方法是通过SSH隧道连接到服务器。