Java連線Linux伺服器過程分析(附程式碼)
阿新 • • 發佈:2020-01-07
這篇文章主要介紹了Java連線Linux伺服器過程分析(附程式碼),文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
pom檔案新增依賴
<!-- https://mvnrepository.com/artifact/ch.ethz.ganymed/ganymed-ssh2 --> <dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>ganymed-ssh2</artifactId> <version>build210</version> </dependency>
一、伺服器登陸公鑰祕鑰設定
步驟如下:
1、本機生成私鑰公鑰檔案
本機進入到.ssh目錄下,c:/Users/zhufengyan/.ssh, 在該目錄下執行
$ ssh-keygen -t rsa
然後一路回車即可。
說明:如果原先./ssh目錄下有id_rsa id_rsa.pub這兩個檔案,以上的一路回車操作會生成新的id_rsa id_rsa.pub來覆蓋原來的key檔案。
2、將本地生成的公鑰資訊放到伺服器
將本地生成的公鑰資訊放置到需要訪問的伺服器,操作如下:
本地獲取公鑰資訊,複製資訊
Xshell登入伺服器,加入你有root許可權,
Cd /root/.ssh
Vi authorized_keys
將以上覆制的內容貼上到檔案尾部。Ok完成。
說明:假設你的伺服器上沒有authorized_keys這個檔案,那麼就自己建立一個,建立完後將公鑰資訊貼上到這個檔案中,儲存,還需要進行授權,chmod 600 authorized_keys。
另外:ssh公鑰生效需滿足至少下面兩個條件:
1 .ssh目錄的許可權必須是700;
2 .ssh/authorized_keys檔案許可權必須是600;
二、連線伺服器
步驟如下
1、 將私鑰檔案放到專案的resources目錄下
則程式碼中訪問的路徑是
private String privateKeypath = "src/main/resources/sshkey/id_rsa";
2、 程式碼實現連線伺服器
/** * 建立與伺服器的連線 * @param host 伺服器IP String host = "192.168.178.1"; * @param port 埠 int port = 22;(預設的,直接用即可) * @param userName 登入伺服器的使用者名稱(work) * @param password 登入伺服器的密碼(為空就行) * @param privateKeyFile 與伺服器公鑰對應的私鑰檔案 String pubkeypath = "src/main/resources/sshkey/id_rsa"; * @return 返回登入的連線, 在使用的最後一定記得關閉connect資源 * @throws IOException */ public static Connection getSSHConnection(String host,int port,String userName,String password,String privateKeyFile) throws IOException { Connection connection = new Connection(host,port); connection.connect(); File file = new File(privateKeyFile); boolean b = connection.authenticateWithPublicKey(userName,file,password); if (b){ return connection; }else { System.out.println("登入連線失敗,請檢查使用者名稱、密碼、私鑰檔案"); return null; } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。