透過 SSH 連接到伺服器(它沒有外部 IP)

透過 SSH 連接到伺服器(它沒有外部 IP)

我有一台小型 PC 設定為 Ubuntu 伺服器,並且我已配置 ssh-server 以便能夠透過 ssh 連接到它。問題從這裡開始,因為我的 ISP 沒有提供外部 IP(所有設備都有 1 個外部 IP),而且我無法更改它。因此,根據我所做的研究,我創建了一個免費套餐 AWS 實例,並在那裡建立了 OpenVPN。

所以我有這樣的工作:

  1. 電腦1
  2. 具有託管 OpenVPN 伺服器的外部 IP 的 AWS 實例
  3. 電腦2

PC1 和 PC2 連接到 AWS 上的 OpenVPN 伺服器,然後我可以使用 PC2 透過 SSH 連接到 PC1。
我有哪些選項(如果有)可以使用 PC2 透過 SSH 連接到 PC1,而不需要 PC2 連接到 OpenVPN,或者可能有一些選項僅連接到 OpenVPN 進行 ssh 連接,其餘流量不使用 openVPN?

答案1

我對OpenVPN一無所知。就我而言,我使用 SSH 隧道。基礎知識非常簡單,但完整的設定可能有點困難。話雖這麼說,您可以讓任意數量的電腦建立隧道(只要您不嘗試同時使用所有隧道,速度就會很快)。

ssh -fNR 2222:localhost:22 aws-computer

aws-computer是我的文件中的一個名稱~/.ssh/config,它定義了要使用的金鑰和使用者名稱/密碼。

現在,當我透過 ssh 登入時,aws-computer我可以使用:

ssh -p 2222 pc1

它的連接就像我有一個單一/正常的 SSH 連接一樣。

您可以根據需要重複隧道,這意味著最終您可以ssh pc2從 pc1 執行一個隧道,ssh pc1從 pc2 執行一個隧道。只需進行一些設定即可使其全部正常工作。

Host aws-computer
  HostName <ip-address-or-domain-name>
  User name
  Port 22
  PasswordAuthentication no
  HostbasedAuthentication no
  IdentitiesOnly yes
  IdentityFile /home/name/.ssh/tunnel_keys/tunnel_rsa

注意:我使用子目錄來存放額外的按鍵(與我常用的鍵不同的鍵),這樣我可以擁有任意數量的

主要限制是您需要使用不同的連接埠(即您不能使用一個連接埠在一台電腦上擁有兩個服務)。另一個限制是其中一台電腦必須具有靜態 IP 位址,或者您需要提供記錄 IP 的網域名稱伺服器。這樣的 DNS 不太安全,因為其他人最終可能會獲得「您的」舊 IP,而您的系統可能會嘗試透過第三方電腦進行連線。

相關內容