如何使用ssh連接兩台遠端計算機

如何使用ssh連接兩台遠端計算機

我發現了很多關於透過 ssh 連接兩台電腦的教程,但我只是不明白我想的關鍵點。 (例如我嘗試過這個或者這個

假設我是 userA,ipv4 xxx.xxx.x.xx,我想與我的朋友(在另一個國家/地區)userB 使用 ipv4 yyy.yyy.y.yy 建立 ssh 連接

因此,我產生了一個 ssh 金鑰,並且有一個不錯的 ./ssh/id_rsa 和 ./ssh/id_rsa.pub,現在我應該將其複製到我朋友的電腦上嗎?

但是,正如人們可能懷疑的那樣,

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

不起作用(怎麼可能呢,因為我們還沒有受到限制?)

userB 是否必須手動將此檔案複製到他自己的 .ssh 檔案中?

然後在我的電腦上

ssh [email protected]

會直接工作嗎? (我認為這是非常不現實的......)

抱歉這麼愚蠢,但在我看來,在教程中,人們正在處理同一台電腦...

答案1

因此,我產生了一個 ssh 金鑰,並且有一個不錯的 ./ssh/id_rsa 和 ./ssh/id_rsa.pub,現在我應該將其複製到我朋友的電腦上嗎?

是的,具體來說,您應該將檔案(公鑰)複製到遠端系統的檔案。~/.ssh/id_rsa.pub~/.ssh/authorized_keys

(儘管如此,你確實應該你自己目標電腦上的使用者帳戶,而不是共享您朋友的「userB」帳戶。

[ssh-copy-id] 不起作用(怎麼可能,因為我們還沒有受到限制?)

通常情況下,它會透過以下方式工作輸入密碼登入遠端系統。 (SSH 使用與本機登入相同的「系統」帳戶和密碼。)

SSH 的特點是它允許客戶端從多種登入方法中進行選擇——實際上並非如此僅有的基於密鑰對。 (有點像網站如何允許您使用密碼登入、使用 Google 登入、使用 USB 令牌登入等)

當然,如果遠端系統已經有基於密碼的登入殘障人士(如今這已成為必需),那麼 ssh-copy-id 確實不能無中生有,您將需要以其他方式將公鑰複製到伺服器的「authorized_keys」檔案中。

幸運的是,公鑰只是一長串文本,因此您可以透過電子郵件或 Discord 或其他方式貼上它。 (雖然 RSA 金鑰很長,但ssh-keygen -t ed25519會產生很多更短的 id_ed25519.pub 甚至可以在緊要關頭寫在紙上。

(儘管即使在這些情況下,ssh-copy-id 仍然可以保留技術上如果您已經有一個密鑰對可以工作,並且想要使用它來註冊另一個密鑰對,則此功能很有用。第三種替代方案是基於 Kerberos 的登錄,主要出現在公司/業餘愛好者環境中。

然後在我的電腦上就可以直接運作了? (我認為這是非常不現實的......)ssh [email protected]

具體來說,SSH 部分可以工作,是的。

但請注意,SSH 不會神奇地通過 NAT,也不會自動為您設置“端口轉發”,因此,如果需要訪問您朋友的家庭計算機,則需要單獨完成。 (SSH 使用 TCP 連接埠 22。)同樣,如果有防火牆,則需要一條規則來允許 SSH。

所以需要先處理一下才ssh y.y.y.y可以工作。

(大多數SSH 教程不涵蓋家庭NAT,因為它是一個非常通用的東西,嚴格來說並不是SSH 設定的一部分。這只是假設如果有人想要允許透過IPv4 連接到家庭網絡,那麼他們已經知道什麼是連接埠轉送以及如何配置——對於 SSH、Minecraft、BitTorrent 或其他任何東西來說,沒有區別。

此外,許多 SSH 教程更多針對開發人員以及一般想要連接到擁有自己的公共 IPv4 位址的 VPS 的人。這與嘗試連接到朋友的電腦略有不同。

答案2

為了使公鑰身份驗證起作用,必須為目標用戶id_rsa.pub附加您的公鑰 ( ) 。~/.ssh/authorized_keys你如何獲得它與 SSH 無關——你必須自己弄清楚。您可以使用任何您想要的媒介,只要它保證完整性(即收件者可以確認他們收到的內容就是您發送的內容)。不必保密,因為這是您的民眾鑰匙。私鑰 ( id_rsa) 保留在您的電腦上。

那還有什麼意義呢ssh-copy-id?有兩個用例:

  1. 已啟用密碼驗證,並且您希望啟用公鑰驗證。在這種情況下,您必須輸入密碼才能連接到主機 B,並將ssh-copy-id公鑰附加到authorized_hosts.

  2. 公鑰身份驗證已設置,但您想要添加另一個金鑰,例如使用更強或不同的加密技術。特別是,您可能想要新增不屬於您或您目前主機的金鑰。在這種情況下,您需要使用選項指定金鑰檔案-i。 (預設情況下,如果沒有,則添加由ssh-add -L或提供的所有鍵。)id_rsa.pub

如果您可能已經設定了密碼身份驗證,為什麼還要使用公鑰身份驗證?因為它是不可能猜測的,也不需要使用者互動。

相關內容