是否可以使用金鑰從另一台電腦使用密碼 ssh 進入 ubuntu 伺服器?

是否可以使用金鑰從另一台電腦使用密碼 ssh 進入 ubuntu 伺服器?

我家裡有 ubuntu 伺服器,我使用 SSH 金鑰從筆記型電腦透過終端登入。很少,但主要是因為工作,我需要訪問此伺服器,但我不想在我的工作筆記型電腦上複製密鑰 - 我寧願只使用普通密碼。

因此,如果我從 ssh 設定檔啟用密碼登錄,即使筆記型電腦包含金鑰,它也會詢問我密碼,對吧?

有辦法阻止這種行為嗎?

謝謝。

答案1

使用兩個私鑰

使用相同的流程設定您的工作站(但是不是與設定筆記型電腦時相同的私鑰):

  • 從來沒有充分的理由從其他機器複製私鑰。如果您尚未在工作站上產生新的私鑰,請立即執行此操作。同時產生對應的公鑰。在工作站上的終端機中,

類型:ssh-keygen -t rsa

  • 將工作站的公鑰複製到伺服器。在工作站上的終端機中,

類型:ssh-copy-id [email protected]

(但使用您的實際使用者名稱和主機名,然後在要求時輸入您的密碼)。

這會將工作站的公鑰安裝到~/.ssh/authorized_keys伺服器上該使用者的檔案中。

  • 沒有第3步了。

細節

我認為你真正要問的是

  • 我有一個 Ubuntu 伺服器(“家”)
  • 我從我的個人筆記型電腦(「筆記型電腦」)登入我的 Ubuntu 伺服器
  • 我還從我的工作電腦(「工作站」)登入我的 Ubuntu 伺服器。

這樣做的正確方法是什麼?

  • 我想我可以簡單地從兩個地方使用相同的密碼登入。這不可能是正確的方式,因為每個人都說公鑰身份驗證比密碼好得多。(A)
  • 我想我可以簡單地將私鑰從筆記型電腦複製到我的工作站。這不可能是正確的方法,因為每個人都說私鑰永遠不應該離開客戶端電腦。

人們牢記在心的是,伺服器上的一個帳戶只有一個用戶名,當然還有一個授權密碼。

像 ssh 這樣的公鑰系統比密碼系統更好:伺服器上的一個帳戶有一個使用者名,並且任意數量的授權公鑰,所有這些都在~/.ssh/authorized_keys文件中列出。

更多細節)。

答案2

即使密碼和基於密鑰的方法都可用,也可以強制您的筆記型電腦使用密鑰檔案。如果您目前正在使用 進行連接,請編輯並新增:ssh [email protected] -p 22~/.ssh/config

Host your.host.tld
    PreferredAuthentications publickey

這個設定檔可以讓你輸入更少的內容:

Host home
    Hostname your.host.tld
    User user
    PreferredAuthentications publickey
    Port 22

有了這個配置,你只需要ssh home.

可以將基於密碼的登入限製到某個 IP 位址。在 中/etc/ssh/sshd_config,您將有一行停用基於密碼的身份驗證:PasswordAuthentication no。要啟用它以從某個 IP 登錄,您可以使用:

Match Address 12.34.56.78
    PasswordAuthentication yes

我建議您即使在工作中也使用基於金鑰的身份驗證。它比基於密碼的身份驗證安全得多,因為它不能輕易被暴力破解。您可以為同一個帳戶擁有多個金鑰,這應該不是問題。

更多奇特的設定指令,請參閱手冊頁ssh_配置(5)。 (對於伺服器端,請參見sshd_配置(5)

答案3

不,至少在我的配置中,如果您啟用密碼身份驗證,它只會在您沒有密鑰時提示輸入密碼。

話雖如此,我永遠不會在暴露於互聯網的伺服器上啟用密碼身份驗證。

相關內容