Linux
SSH 反向隧道 - 使用密鑰驗證時禁用密碼請求
我已經使用設置了一個反向 ssh 隧道
ssh -R 22100:127.0.0.1:22 remoteuser@remotehost
在機器 1 上。這台機器使用密鑰向遙控器進行身份驗證。
遠端主機使用以下 sshd_config 選項:
... PubkeyAuthentification yes PasswordAuthentification no ...
這在第三台機器上執行良好,它的密鑰被遠端伺服器辨識。即,它正確登錄到最初設置隧道的機器 1,使用
ssh remoteuser@remotehost -p 22100
.但是,當我嘗試從沒有遠端伺服器辨識的密鑰的第四台機器登錄時,我仍然被要求輸入密碼。即在第四台機器上它看起來像這樣:
ssh remoteuser@remotehost # returns Permission denied (publickey) ssh remoteuser@remotehost -p 22100 # is asking for password for remoteuser@remotehost
為什麼在嘗試連接到反向隧道埠時出現密碼選項?不過,我似乎無法使用密碼。如果沒有辨識出密鑰,我如何禁用甚至要求輸入密碼?
建立隧道後,任何到“remotehost”上的埠 22100 的連接都會變成到“機器 1”的埠 22 的連接,特別是這適用於
ssh remoteuser@remotehost -p 22100
在“第四台機器”上執行。因此,重要的參數是在“機器 1”的埠 22 上執行的 sshd 的參數。OP 指出系統正在請求 remoteuser@remotehost 的密碼,但這反映了所請求的連接所要求的內容。ssh 程序不知道埠 22100 正在被轉發。但是,正在檢查的主機密鑰是“機器 1”而不是“遠端機器”的。已知主機數據庫(通常為 ~/.ssh/known_hosts)確實將密鑰與埠和主機一起儲存,因此這一切都有效。