利用 reverse ssh tunnel 實現防火牆背後主機的連線
2020-07-18
文章目錄
目的:假設防火牆後的主機 A 不開放 ssh ,想透過你的電腦 ssh 到主機 A
準備一台主機 B,且讓主機 A 和你的電腦都可以 ssh 到主機 B 上
步驟一
在主機 A 上輸入
ssh -NR 8888:localhost:22 apps@1.1.1.1
- 8888 必須是任何不被使用中的 port
- localhost 這裡不用改
- 22 則是 ssh 的 port
- apps 是登入主機 B 的 user name
- 1.1.1.1是主機 B 的 IP
輸入後就會掛著了
步驟二
從你的電腦 ssh 到主機 B,然後在主機 B 上輸入
ssh user@localhost -p 8888
- user 是主機 A 上的 user name
- localhost 這裡不用改
- 8888 則是你在步驟一的 8888
- 輸入後會詢問登入密碼,只要輸入主機 A 上 user 的密碼即可
疑難排解
假如沒有出現密碼詢問,而是拒絕登入的話,有可能是主機 B 上沒有開啟接受以輸入密碼方式 ssh 的設定(AWS EC2 的主機預設都是沒開啟密碼登入的)
在主機 B 上打開
/etc/ssh/sshd_config
然後把以下設定改為 yes
PasswordAuthentication yes
重啟 ssh
service ssh restart
就可以了