Ssh

通過網際網路在兩台PC之間建立一個共享終端

  • February 12, 2015

我的電腦和我朋友的電腦在兩個不同的區域網路中,每個都通過路由器連接到網際網路,每個區域網路只有一個 IP,由 ISP 臨時分配。為了建立我們每個人都可以看到對方的終端並在我們的 PC 上打字的情況,我們必須克服哪些問題?

除了提到障礙之外,您建議查找哪些術語來處理這種情況?

要解決臨時 IP 地址分配問題,您需要查看動態 DNS。找到支持動態 DNS 的域名註冊商,然後你們每個人註冊一個域名並按照註冊商的說明設置 IP 地址的自動更新。這將允許您連接到您朋友的電腦(反之亦然),而不必擔心 IP 地址過期,因為域名將始終指向目前分配的地址。

在 LAN 方面,如果您還沒有將 PC 設置為靜態內部 IP 地址,則每個人都需要將其設置為靜態內部 IP 地址。如何執行此操作的詳細資訊取決於您使用的發行版。例如,我的路由器的內部 IP 地址是 192.168.1.1,它將 192.168.1.100 到 192.168.1.199 範圍內的地址分配給我家庭網路上的 DHCP 客戶端。在我希望能夠從 LAN 外部訪問的 Debian PC 上,我/etc/network/interfaces使用路由器 DHCP 範圍之外的靜態地址設置了我的主乙太網適配器,如下所示:

allow-hotplug eth0
auto eth0
iface eth0 inet static
   address 192.168.1.10
   netmask 255.255.255.0
   gateway 192.168.1.1

然後,在路由器的防火牆設置中,我打開了 TCP 埠 22(預設 SSH 埠)到內部地址 192.168.1.10(我的電腦的靜態地址)的埠轉發。

在將該埠暴露給世界之前,請注意以下幾個步驟來緩解 SSH 攻擊:

  • 不允許在 SSH 中進行 root 登錄。(PermitRootLogin no在您的 sshd 配置文件中。)
  • 僅允許特定(非 root 和其他非特權)使用者的連接。(AllowUsers my_user_id your_user_id在您的 sshd 配置文件中。)為此,您可以指定您自己的使用者 ID 和您朋友的使用者 ID,或者專門為此目的創建一個單獨的使用者帳戶。重要的是,您不允許來自通常由可能具有預設密碼的主要軟體包(例如,mysql、www-data)創建的使用者 ID 的連接。這些是腳本小子的簡單目標。
  • 在上述步驟中列入白名單的帳戶上使用強密碼。
  • 或者,在ssh-keygen兩個系統相互驗證後,避免使用密碼。
  • 安裝一些軟體,在一些失敗後阻止來自給定遠端主機的連接請求。我為此目的使用了fail2ban,並且效果很好。

現在您應該能夠連接到彼此的電腦,這只是讓您需要共享一個終端。這就是GNU Screen的用武之地。主持會話的人只需要啟動終端、啟動螢幕並啟用多使用者,以便其他人可以加入會話。(有關啟用多使用者的詳細資訊,請參見 screen 的手冊頁。)之後,你們中的一個或兩個都可以在不終止 screen 會話的情況下斷開連接,並在以後的任何時間重新連接到它。即使 ISP 更改了您的 IP 地址(對於你們中的任何一個),從而終止了您的連接,您仍然可以在刷新 DNS 條目並再次加入同一會話後重新連接。

您沒有提供需要實現此目標的原因,因此我的回答可能沒有您需要的解決方案。但是與另一個使用者共享終端的最簡單方法是使用tmate,它是 tmux 的一個分支。

Tmate 允許您啟動會話(打開終端並啟動 tmate),它將為您提供 2x 連接字元串;a 讀寫(其他人可以輸入命令)或只讀(其他人只能看到您輸入的內容)。

好處是一旦你在伺服器機器上安裝了tmate,你就不需要打開任何埠或安裝VPN。缺點是安裝不是很簡單(也不是太複雜),而且我不薄你可以傳輸文件。

這是 tmate 的快速展示影片 - https://www.youtube.com/watch?v=is_VpIx3Z4M

引用自:https://unix.stackexchange.com/questions/184321