常見問題:ssh:連線到主機 10.0.2.15 連接埠 22:連線被拒絕

常見問題:ssh:連線到主機 10.0.2.15 連接埠 22:連線被拒絕

我在 Windows 10(主機)上使用 VirtualBox 建立兩個虛擬機器(Guest DTGuest S)。我可以透過 SSH 連接Guest DT到 嗎Guest S

  • Guest DT是Ubuntu桌面18.04。
  • Guest S正在運行 Ubuntu伺服器18.04。
  • VirtualBox 術語

我對 SSH 缺乏經驗。我用谷歌搜尋並閱讀了該網站上「類似問題」的答案。

錯誤

在 上Guest DT,我這樣做:

$ ssh [email protected]
ssh: connect to host 10.0.2.15 port 22: Connection refused

筆記:

  • 我可以成功 ping 通 10.0.2.15
  • test是我在 上的用戶名Guest S

環境設定

Guest DT

$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub
ssh-rsa <a very long key> neil@neil-VirtualBox

Guest S

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ echo "ssh-rsa <a very long key> neil@neil-VirtualBox" > ~/.ssh/authorized_keys
$ /etc/init.d/ssh restart

Guest S

test@server01:~$ service sshd status

ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-06-15 02:05:04 UTC; 1h 16min ago
  Process: 903 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 906 (sshd)
    Tasks: 1 (limit: 2317)
   CGroup: /system.slice/ssh.service
           └─906 /usr/sbin/sshd -D

Jun 15 02:05:04 server01 systemd[1]: Starting OpenBSD Secure Shell server...
Jun 15 02:05:04 server01 sshd[906]: Server listening on 0.0.0.0 port 22.
Jun 15 02:05:04 server01 sshd[906]: Server listening on :: port 22.
Jun 15 02:05:04 server01 systemd[1]: Started OpenBSD Secure Shell server.


$ sudo ufw status
[sudo] password for test: 
Status: inactive


/etc/ssh/sshd_config  contains :
#PubkeyAuthentication yes

答案1

我認為 VirtualBox guest 虛擬機器的預設網路設定實際上NAT並不是為了實現這種類型的網路通訊;但根據舊帖子可能可以透過轉發非系統連接埠到訪客連接埠並使用預設值環回IP位址聯繫客人。 10.0.2.2 是預設環回。

設定網路

然而,最簡單的方法是確保為每位客人選擇正確的網路。關閉您的來賓計算機,然後在 VirtualBox 中編輯適合您需求的網路模式(注意網格)

Virtualbox 改變網路的步驟

使用預設 NAT 網絡

使用 NAT,VirtualBox 使用特殊的 IP 10.0.2.2 作為環回(至少我認為這仍然是正確的)。因此,從環回轉送的連接埠可供所有來賓使用。我認為你應該能夠利用這一點。要使用 NAT 網路進行通信,需要以下其中一項:

  • 使用 VBoxManage 設定 NAT 轉發非系統連接埠 (1024–65535)到一個較低的系統連接埠(<1024)

    1. 在本例中,將連接埠 2222 之類的內容轉送至連接埠 22(SSH 的預設值)。這也假設我們將根據問題 使用 的Guest SIP 位址。10.0.2.15
    2. 在 Virtualbox 主機上配置連接埠轉發,運行:

      VBoxManage 修改vm“虛擬機器名稱”--natpf1“guestssh,tcp,,2222,,22”

      到達任何主機介面上的連接埠 2222 的所有 TCP 流量都會轉送到來賓中的連接埠 22。協定名稱 tcp 是強制屬性,定義應使用哪個協定進行轉送(也可以使用 udp)。 guestsh 名稱純粹是描述性的,如果省略,將自動產生。 --natpf 後面的數字表示網卡,就像 VBoxManage 的其他部分一樣。

    3. 檢查已新增的規則:

      VBoxManage showvminfo myserver | VBoxManage grep '規則'

    4. Guest Server透過主機環回映射和連接埠轉送連接到Guest S

      尼爾@尼爾-VirtualBox$ ssh -p 2222[電子郵件受保護]

  • 替代方案:更改 (客人S/etc/sshd_config收聽 非系統連接埠 (> 1024)。然後重新載入ssh。

答案2

只需刪除已知主機目錄中包含的所有 ECDSA 指紋金鑰(可能是 SHA256)即可。

  1. 跑步vi ~/.ssh/known_hosts
  2. 刪除known_hosts 檔案中與主題IP 位址關聯的所有金鑰。
  3. 輸入“Esc”鍵,然後輸入“Shift”鍵 +“:”+“x”

相關內容