Ssh
通過 telnet 測試埠時如何更改 OpenSSH 橫幅文本
我正在部署一個腳本,該腳本在我無法控制的防火牆後面的各種客戶端上執行。該腳本嘗試通過 SSH 客戶端登錄到我控制的遠端伺服器(該腳本預先載入了用於身份驗證的私鑰)。一些數據中心的一些防火牆將所有 OUTBOUND 埠 22 請求重定向到不同的伺服器(各種設施的系統管理員似乎出於自己的目的這樣做了)。
在這些情況下,腳本會失敗(因為 ssh 客戶端登錄失敗)。該腳本有一個診斷工具,可以測試使用者的連接。為了能夠確定我的遠端伺服器是否可以從他們的工作站在埠 22 上訪問,我想執行命令
telnet my-remote-host 22
從我的腳本中,並測試響應。我的目標伺服器響應:
SSH-2.0-OpenSSH_4.3
我的本地開發伺服器響應:
SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu4
注意:這些是埠 22 上的telnet響應,而不是我的伺服器的 OpenSSH 橫幅文本(在這種情況下將無法訪問)
如何控制此文本?– 所以我可以插入一個令牌,將我自己的伺服器辨識為在這種情況下被 ping 的伺服器。接受埠 22 請求的數據中心伺服器可能執行與我自己的遠端伺服器完全相同的 OpenSSH 版本。
(目前我的診斷只是報告登錄失敗,但還有其他原因可能會發生這種情況 - 我正在尋找一個更細粒度的診斷,可以在我嘗試真正登錄之前測試我的伺服器是否真的可以在埠 22 上訪問)
抱歉,恐怕更改該文本的唯一方法是修改原始碼並手動編譯 ssh。
你做錯了!確定您是否到達“良好”伺服器的唯一方法是檢查其密鑰的指紋。查看ssh_config (5)手冊頁。您正在尋找的參數應該是“ StrictHostKeyChecking ”
順便說一句,不要用這個橫幅做愚蠢的事情。它的內容在協議規範中定義,更改它可能會阻止您的客戶端連接。