web-dev-qa-db-ja.com

Vagrant Virtual MachineにSSH接続できない

ホスト名10.0.0.23のIPアドレスlamp-vmにインストールされたローカルVagrantマシン。

vagrant sshコマンドを使用すると、問題なく接続でき、必要なすべてのことを実行できます。

これによりエラーが発生します

$ ssh vagrant @ lamp-vm -v -v

debug1:アドレス10.0.0.23への接続、ポート22:接続がタイムアウトしました
ssh:ホストlamp-vmポート22に接続:接続がタイムアウトしました

私の/etc/hostsファイルには10.0.0.23 lamp-vmが含まれています。

私の.ssh/configファイルは次のようになります

ホストlamp-vm
ユーザー浮浪者
IdentityFile〜/ .ssh/vagrant

私は-i /path/to/.sh/identity_fileの有無にかかわらずsshコマンドを試しました。

SSHを使用してVagrant Virtual Machineに接続するにはどうすればよいですか?

11
csi

私もこの問題に直面しました。これが私の最終的な構成であり、ホストマシンのどこからでも迷惑なマシンにSSHで接続できました。

Vagrantfile:

...
# Setting up private_network to have virtual Host
config.vm.network :private_network, ip: "192.168.33.10"

# Enable ssh forward agent
config.ssh.forward_agent = true
...

マシンへのssh:

ssh [email protected]

パスワードの入力を求められます(デフォルトはvagrant):

[email protected]'s password:

そして、ブーム、あなたは入っています!

PS *ホストマシンのどこでもscpを使用できます。

scp /path/to/src/file [email protected]:/path/to/destination/file
8
shaoming

古いですが、答えが無いので、お答えします。コマンド:

vagrant ssh

同等です

ssh vagrant@localhost -p 2222 -i .vagrant/machines/default/virtualbox/private_key

これは、何か変更コマンドを適切に変更した場合のデフォルトの動作です。まず最初に、Vagrantはゲストボックスにvagrantユーザーを作成し、そのユーザーを使用してsshを実行します。以前の人々が言っ​​たように、デフォルトでホストのポート2222からゲストのポート22にトラフィックを転送します(vagrant upを使用すると、そのメッセージが表示されます)。そして最後に、Vagrantはsshセッション用のキーを作成するので、その必要はありません。したがって、ssh経由で接続するときに、公開キーを引数として提供する必要があります。

8
stefwhite

この動作は仕様です。

Vagrantは VirtualBox NAT mode を使用します。これはポート転送を使用することを意味します。

VMモードを使用してNATに直接SSH接続することはできません。

「vagrant ssh」を使用すると、vagrantがポート転送を実行するので、心配する必要はありません。デフォルトではポート2222のlocalhostに接続すると思いますが、ポート番号の衝突も解決しようとします。

VMに直接SSHで接続する必要がある場合は、VMをホスト専用またはブリッジネットワークモードに切り替えます。

6
Philip Wigg

私はこれをコメントとして追加しましたが、現在、それを行うのに十分な担当者がいません。 VMをブリッジモードに設定するためのハウツーをここに書きました:

https://askubuntu.com/questions/116861/setting-up-a-network-between-a-Host-and-guest-virtual-machine/116909#116909

これがお役に立てば幸いです。

5
rwc

Windows/Vagrant/Ubuntu

これは私にとってうまくいきました、そしてあなたがこれがsshクライアントでこれを実行することによってうまくいくかどうかすぐに理解できます。

ssh [email protected] -p 2222 -v

-vを指定すると、詳細モードになり、デバッグ情報が表示されます...

$ ssh [email protected] -p 2222 -v
OpenSSH_7.1p1、OpenSSL 1.0.2e 2015年3月3日
debug1:127.0.0.1 [127.0.0.1]ポート2222に接続しています。
debug1:接続が確立されました。
debug1:IDファイル/home/Jamie/.ssh/id_rsaタイプ1
debug1:key_load_public:そのようなファイルまたはディレクトリはありません
debug1:IDファイル/home/Jamie/.ssh/id_rsa-cert type -1
debug1:key_load_public:そのようなファイルまたはディレクトリはありません
debug1:IDファイル/home/Jamie/.ssh/id_dsaタイプ-1
debug1:key_load_public:そのようなファイルまたはディレクトリはありません
debug1:IDファイル/home/Jamie/.ssh/id_dsa-cert type -1
debug1:key_load_public:そのようなファイルまたはディレクトリはありません
debug1:IDファイル/home/Jamie/.ssh/id_ecdsaタイプ-1
debug1:key_load_public:そのようなファイルまたはディレクトリはありません
debug1:IDファイル/home/Jamie/.ssh/id_ecdsa-cert type -1
debug1:key_load_public:そのようなファイルまたはディレクトリはありません
debug1:IDファイル/home/Jamie/.ssh/id_ed25519タイプ-1
debug1:key_load_public:そのようなファイルまたはディレクトリはありません
debug1:IDファイル/home/Jamie/.ssh/id_ed25519-cert type -1
debug1:プロトコル2.0の互換モードを有効にする
debug1:ローカルバージョン文字列SSH-2.0-OpenSSH_7.1
debug1:リモートプロトコルバージョン2.0、リモートソフトウェアバージョンOpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6
debug1:一致:OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6 pat OpenSSH_6.6.1 * compat 0x04000000
debug1:127.0.0.1:2222に「vagrant」として認証
debug1:SSH2_MSG_KEXINIT sent
接続は127.0.0.1で閉じられました

SSH2_MSG_KEXINITは、キーが交換されていることを意味します。これはまもなく失敗します...

この場合、キーを削除し、VMでこれを実行して再生成しました。 ( http://ask.xmodulo.com/sshd-error-could-not-load-Host-key.html

$ ls -al/etc/ssh/sshkey
$ Sudo rm -r/etc/ssh/ssh
key
$ Sudo dpkg-reconfigure openssh-server

キーが再生成されたら、Vagrant BoxにSSHで接続できました。

3
mrjamiebowman

このコメントをチェックしてください: https://github.com/mitchellh/vagrant/issues/1936#issuecomment-21139674

基本的に、プライベートネットワークを使用している場合でも、vagrantは127.0.0.1でsshを実行します。プライベートIP /ホスト名の代わりに、そのsshコマンド@ 127.0.0.1を試してください。

0
dtrenz

仮想マシンを破壊した
仮想マシンをリロードしました
すべてうまくいった

理由はわかりませんが、最初のプロビジョニングで何かが正しくロードされなかったことは明らかです。

0
csi