[英]How can I check if my host does not allow SSH access
我已經盡一切努力來創建到遠程MySQL數據庫的SSH連接。
String user = "user";
String password = "pass";
String remoteHost = "host";
int localPort = 2022;
int remotePort = 3306;
Session session = null;
//Try to forward ports
try
{
//Create the JSCH object
JSch jsch = new JSch();
//Get the session
session = jsch.getSession(user, remoteHost);
//Set the password
session.setPassword(password);
//To be able to connect to any host (this is just for testing!)
session.setConfig("StrictHostKeyChecking", "no");
//Connect the session
session.connect();
//Set port forward
session.setPortForwardingL(localPort, "127.0.0.1", remotePort);
//Show message
System.out.println("Waiting for connections…");
//Exit on return
InputStreamReader converter = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(converter);
in.readLine();
}
//Failed
catch(Exception ex)
{
//Message
System.out.println("Failed to setup tunnel");
//Stack trace
ex.printStackTrace();
}
//Clean up
finally
{
try{session.disconnect();} catch(Throwable t) {t.printStackTrace();}
}
但是我仍然收到此錯誤:com.jcraft.jsch.JSchException:java.net.ConnectException:操作超時
我不明白為什么會給我這個錯誤,因為我相信我使用的是正確的信息。 所以我的問題是,如何檢查主機的遠程IP,如何確保它們允許SSH訪問?
更新:
我可以通過ssh -v user @ host連接到遠程MySQL數據庫。 但是,在我的代碼中,我收到此錯誤:
com.jcraft.jsch.JSchException:PortForwardingL:本地端口127.0.0.1:2022無法綁定。
我正在使用Mac,Mac中的本地端口是否不同?
這里有幾個步驟可以找出問題的根源。 由於它可能與您的Java代碼無關。
ssh -v user@host
ssh -v user@host -L 2022:127.0.0.1:3306
2022
連接到MySql SSH隧道和MySql的一些有用鏈接: MySQL遠程連接:SSH隧道,HTTP隧道
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.