
是否可以建立一個 SSH 隧道來定址遠端主機,就像它位於本機系統上一樣,例如。輸入以下偽範例本地並達到想要的效果:
- 複製資料庫:
mysqldump remote | mysql local
或mysqldump local | mysql remote
- 將文字附加到遠端文件:
echo blah >> remote:file.txt
- 更改遠端文件:
sed ... remote:file.txt
- 執行遠端命令:
apk add blah
如果單一連線不可能,那麼實現這些事情最方便的方法是什麼?
答案1
要存取遠端 mysql,您可以透過轉送使用 localhost:12345:
ssh -Nf -L 12345:localhost:3306 user@remote
對於檔案操作,您可以透過 sshfs 掛載遠端主機:
mkdir /tmp/remote
sshfs user@remote:/ /tmp/remote
echo blah >> /tmp/remote/file.txt
sed ... /tmp/remote/file.txt
通常透過 ssh 執行遠端命令:
ssh user@remote command ....
您只需使用一個連接即可完成這一切如果將其新增至 ~/.ssh/config 中:
ControlMaster auto
ControlPath ~/.ssh/masters/%l%r@%h:%p
第一個 ssh 連接將成為主連接,下一個將重新使用它。新的從屬連接將非常快速地可用。沒有初始金鑰交換開銷等。