ヒトリ歩き

愚痴とかいろいろ書きます

Vagrantで起動したVMにsshで接続するには?

f:id:kotapontan:20211017203427p:plain

はじめに

Vagrantで起動したVMSSHで接続したいケースがあるため、接続するために必要なことを確認する。

事前条件

Vagrantで起動する際に、IPアドレスを設定していること。

config.vm.network "private_network", ip: "192.168.56.10"

起動したVMIPアドレスSSH接続すると、Permission deniedが発生する

Permission denied が発生し、サーバに接続できない。

$ ssh vagrant@192.168.56.10
vagrant@192.168.56.10: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

秘密鍵を指定してSSH接続が可能。

vagrant秘密鍵は、Vagrantfileが置いてあるディレクトリから .vagrant/machines/default/virtualbox/private_key にある。
このファイルを秘密鍵として使用すればssh 接続可能。

$ ssh -i .vagrant/machines/default/virtualbox/private_key vagrant@192.168.56.10

stackoverflow.com

パスワード認証するには...

/etc/ssh/sshd_configPasswordAuthentication noPasswordAuthentication yes に変更し、sshデーモンを再起動すればよい。

$ vagrant ssh
$ sudo vi /etc/ssh/sshd_config
$ sudo systemctl restart sshd

teratail.com

最後に

なにか癖でもあるのかもと身構えていたら、当たり前のような公開鍵方式での接続だった。 sshdのパスワード認証の設定変更だけで、パスワード認証での接続が可能ということなので、簡単に問題が解決してよかった。
ただ、SSHの鍵交換の部分は詳しく知らない。
具体的にはssh-keygenコマンドとか真面目にオプションとか見たことがなかったので、今度、ちゃんと見てみようと思う。