這是一種情況:
我所有的工作都在 Mac 上完成。
有一個特定的linux伺服器'伺服器01'提供對另一個Linux伺服器的存取'伺服器02' 透過偽終端
因此,要 ssh 進入 '伺服器02',我在我的 Mac 上執行此操作:
ssh -t server01 'inline server02'
然後它要求我輸入密碼'伺服器01';我輸入它,然後我就登入了'伺服器02'。現在,我在'伺服器02' 終端。
從 '伺服器02'我可以存取所在的 mysql 資料庫'伺服器03' 使用以下 mysql 指令:
mysql --host=server03 --port=4201 --user=myuser --password=mypass mydb
兩者都不 '伺服器01'也不'伺服器02'我的 Mac 也沒有 SSH 存取權限'伺服器03'
現在,我想訪問 ' 上的 mysql伺服器03' 直接從我的 Mac 透過某種連接埠轉送。因此,如果我在 mac 終端機上輸入以下命令,它應該將我連接到 ' 上的 mysql 資料庫伺服器03':
mysql --host=localhost --port=4201 --user=myuser --password=mypass mydb
有沒有辦法做到這一點?任何幫助是極大的讚賞。
答案1
如果你可以從 server01 ssh 到 server02 你可以嘗試
ssh -t -L server02:4201 server01 'ssh -N -L server03:4201 server02'
它將連鎖連接
本機:4201 -> server02:4201 -> server03:4201
僅本地連接到端口4201在蘋果電腦上
最好使用金鑰身份驗證和 ssh-agent 來避免輸入密碼。