![一般的な問題: ssh: ホスト 10.0.2.15 ポート 22 に接続: 接続が拒否されました](https://rvso.com/image/1157738/%E4%B8%80%E8%88%AC%E7%9A%84%E3%81%AA%E5%95%8F%E9%A1%8C%3A%20ssh%3A%20%E3%83%9B%E3%82%B9%E3%83%88%2010.0.2.15%20%E3%83%9D%E3%83%BC%E3%83%88%2022%20%E3%81%AB%E6%8E%A5%E7%B6%9A%3A%20%E6%8E%A5%E7%B6%9A%E3%81%8C%E6%8B%92%E5%90%A6%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F.png)
Windows 10 (ホスト) 上で VirtualBox を使用して 2 つの仮想マシン (Guest DT
とGuest S
) を作成しています。 から に SSH 接続できますGuest DT
かGuest S
?
Guest DT
Ubuntuはデスクトップ18.04.Guest S
Ubuntuを実行しているサーバ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でニーズに適したネットワーク モード (グリッドに注意)。
デフォルトNATネットワークの使用
NAT を使用すると、VirtualBox は特別な IP 10.0.2.2 をループバックとして使用します (少なくとも、これは今でも当てはまると思います)。したがって、ループバックから転送されたポートはすべてのゲストで使用できます。これを利用できるはずです。NAT ネットワークを使用して通信するには、次のいずれかが必要です。
VBoxManageを使用して、NAT転送を設定します。非システムポート (1024~65535)より低いシステムポート (< 1024)。
- この場合、ポート 2222 などをポート 22 (SSH のデフォルト) に転送します。また、質問に従って、
Guest S
の IP アドレスを使用することを前提としています。10.0.2.15
Virtualbox ホストでポート転送を構成するには、次を実行します。
VBoxManage modifyvm "VM 名" --natpf1 "guestssh,tcp,,2222,,22"
ホスト インターフェイスのポート 2222 に到着するすべての TCP トラフィックは、ゲストのポート 22 に転送されます。プロトコル名 tcp は、転送に使用するプロトコルを定義する必須属性です (udp も使用できます)。名前 guestsh は単に説明的なものであり、省略した場合は自動生成されます。--natpf の後の数字は、VBoxManage の他の部分と同様に、ネットワーク カードを示します。
追加されたルールを確認してください:
VBoxManage showvminfo myserver | grep 'ルール'
Guest Server
ホストループバックマッピングとポート転送を介して接続しますGuest S
neil@neil-VirtualBox$ ssh -p 2222[メールアドレス]
- この場合、ポート 2222 などをポート 22 (SSH のデフォルト) に転送します。また、質問に従って、
代替案: 変更 (ゲストS)設定ファイル聞く 非システムポート (> 1024). 次に、ssh をリロードします。
答え2
known-hosts ディレクトリ内に含まれるすべての ECDSA フィンガープリント キー (おそらく SHA256) を削除するだけです。
- 走る
vi ~/.ssh/known_hosts
- known_hosts ファイル内のサブジェクト IP アドレスに関連付けられているすべてのキーを削除します。
- 「Esc」キーを押し、次に「Shift」キー + 「:」 + 「x」を押します。