ssh 在配置中不使用伺服器名稱

ssh 在配置中不使用伺服器名稱

我嘗試進行配置以透過命令連接到遠端 ssh 伺服器ssh <server short name>。我把這個放進去~/.ssh/config

Host <server short name> <server full name>
    Host <server full name>
    User <my username on the remote server>
    Port 22022
    ForwardAgent yes
    ForwardX11 yes

我可以使用連接

$ ssh <server full name>

但命令失敗

$ ssh <server short name>
ssh: Could not resolve hostname <server short name>: Name or service not known

我檢查了好幾次拼寫,沒有發現錯誤。有什麼想法為什麼第二個命令失敗嗎?

答案1

Host不是 SSH 選項;無論縮排等級如何,它總是開始一個新的部分。因此你有兩個配置部分;一個空的匹配<shortname> <fullname>,然後一個匹配<fullname>

相反,第二行需要是HostName <fullname>.

答案2

請參閱手冊頁

host關鍵字用於將組態分組在一起,也可用於定義主機的別名或一次配置多個主機。

考慮以下場景:在工作中,您有兩台伺服器,分別稱為 dev.example.com 和 test.example.com,您在其中使用相同的金鑰對和具有第二個金鑰對的 github 帳戶。然後您可以設定以下配置

host *.example.com
identityfile ~/.ssh/work-key
user bob
Port 22022
ForwardAgent yes
ForwardX11 yes

host github.com
identityfile ~/.ssh/github-key

host dev
hostname dev.example.com

host test
hostname test.example.com

並使用類似這樣的東西來連接:

ssh dev

相關內容