目的:假設防火牆後的主機 A 不開放 ssh ,想透過你的電腦 ssh 到主機 A


準備一台主機 B,且讓主機 A 和你的電腦都可以 ssh 到主機 B 上

步驟一

在主機 A 上輸入

ssh -NR 8888:localhost:22 apps@1.1.1.1
  1. 8888 必須是任何不被使用中的 port
  2. localhost 這裡不用改
  3. 22 則是 ssh 的 port
  4. apps 是登入主機 B 的 user name
  5. 1.1.1.1是主機 B 的 IP

輸入後就會掛著了


步驟二

從你的電腦 ssh 到主機 B,然後在主機 B 上輸入

ssh user@localhost -p 8888
  1. user 是主機 A 上的 user name
  2. localhost 這裡不用改
  3. 8888 則是你在步驟一的 8888
  4. 輸入後會詢問登入密碼,只要輸入主機 A 上 user 的密碼即可


疑難排解

假如沒有出現密碼詢問,而是拒絕登入的話,有可能是主機 B 上沒有開啟接受以輸入密碼方式 ssh 的設定(AWS EC2 的主機預設都是沒開啟密碼登入的)

在主機 B 上打開 

/etc/ssh/sshd_config

然後把以下設定改為 yes

PasswordAuthentication yes

重啟 ssh

service ssh restart

就可以了