一般的な問題: ssh: ホスト 10.0.2.15 ポート 22 に接続: 接続が拒否されました

一般的な問題: ssh: ホスト 10.0.2.15 ポート 22 に接続: 接続が拒否されました

Windows 10 (ホスト) 上で VirtualBox を使用して 2 つの仮想マシン (Guest DTGuest S) を作成しています。 から に SSH 接続できますGuest DTGuest S?

  • Guest DTUbuntuはデスクトップ18.04.
  • Guest SUbuntuを実行しているサーバ18.04.
  • VirtualBox 用語

私は SSH の経験が浅いです。Google で検索して、このサイトの「同様の質問」に対する回答を読みました。

エラー

ではGuest DT、次の操作を行います。

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

注記:

  • 10.0.2.15に正常にpingできました
  • 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ゲストのデフォルトのネットワーク設定は、このタイプのネットワーク通信を実現することを意図したものではないと思います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 Sの IP アドレスを使用することを前提としています。10.0.2.15
    2. Virtualbox ホストでポート転送を構成するには、次を実行します。

      VBoxManage modifyvm "VM 名" --natpf1 "guestssh,tcp,,2222,,22"

      ホスト インターフェイスのポート 2222 に到着するすべての TCP トラフィックは、ゲストのポート 22 に転送されます。プロトコル名 tcp は、転送に使用するプロトコルを定義する必須属性です (udp も使用できます)。名前 guestsh は単に説明的なものであり、省略した場合は自動生成されます。--natpf の後の数字は、VBoxManage の他の部分と同様に、ネットワーク カードを示します。

    3. 追加されたルールを確認してください:

      VBoxManage showvminfo myserver | grep 'ルール'

    4. Guest Serverホストループバックマッピングとポート転送を介して接続しますGuest S

      neil@neil-VirtualBox$ ssh -p 2222[メールアドレス]

  • 代替案: 変更 (ゲストS設定ファイル聞く 非システムポート (> 1024). 次に、ssh をリロードします。

答え2

known-hosts ディレクトリ内に含まれるすべての ECDSA フィンガープリント キー (おそらく SHA256) を削除するだけです。

  1. 走るvi ~/.ssh/known_hosts
  2. known_hosts ファイル内のサブジェクト IP アドレスに関連付けられているすべてのキーを削除します。
  3. 「Esc」キーを押し、次に「Shift」キー + 「:」 + 「x」を押します。

関連情報