我是 Gnu/Linux 和 UNIX 的菜鳥。我正在玩遊戲來學習這個作業系統的基礎知識。
作為我正在玩的遊戲的一部分,我必須使用 登入遠端伺服器ssh
,只有私鑰憑證和使用者名稱(無密碼)。
- 如果我從遠端電腦(我使用另一個使用者名稱登入)使用 SSH 登錄,我將被授予無需任何密碼的存取權限。
- 如果我嘗試從本機電腦登錄,SSH 會要求我輸入密碼。
這是我嘗試訪問的伺服器的 SSH 配置的結果嗎?
我的意思是,如果我從本機主機(在本例中為伺服器)登入以及從遠端電腦(在本例中為我的 PC)登錄,SSH 可以應用不同的登入策略嗎?
多謝。
親切的問候。
答案1
這是我嘗試訪問的伺服器的 SSH 配置的結果嗎?
根據您分享的詳細信息,我們無法確定。您甚至可能連接到在同一系統上執行的兩個不同的、獨立配置的 SSH 守護程式。
我的意思是,如果我從本機主機(在本例中為伺服器)登入以及從遠端電腦(在本例中為我的 PC)登錄,SSH 可以應用不同的登入策略嗎?
是的,SSH 伺服器可以根據傳入連線的各種屬性應用不同的策略。
例如,Match
OpenSSH 配置中的關鍵字sshd
允許您定義條件區塊,這些條件區塊僅在滿足指定條件列表時才套用(並覆蓋先前設定的指令)(有關詳細信息,請參閱man 5 sshd_config
)。
將此區塊新增至/etc/ssh/sshd_config
(確切位置可能會有所不同,具體取決於您的系統):
PubkeyAuthentication yes
Match Address "!127.0.0.1,!::1,*"
PubkeyAuthentication no
將指示sshd
:
- 預設允許公鑰認證;
127.0.0.1
禁止對來自和之外的其他地址的連接進行公鑰身份驗證::1
。
(避免頭痛的注意事項:如man 5 ssh_config
、「模式」、
[...] 否定的配對本身永遠不會產生正面的結果。 [...]此處的解決方案是包含一個將產生正匹配的術語,例如通配符[...]
這就是為什麼在其末尾"!127.0.0.1,!::1,*"
包含 a )。*