はじめに
Vagrantで起動したVMにSSHで接続したいケースがあるため、接続するために必要なことを確認する。
事前条件
Vagrantで起動する際に、IPアドレスを設定していること。
config.vm.network "private_network", ip: "192.168.56.10"
起動したVMにIPアドレスで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
パスワード認証するには...
/etc/ssh/sshd_config
の PasswordAuthentication no
を PasswordAuthentication yes
に変更し、sshデーモンを再起動すればよい。
$ vagrant ssh
$ sudo vi /etc/ssh/sshd_config
$ sudo systemctl restart sshd
最後に
なにか癖でもあるのかもと身構えていたら、当たり前のような公開鍵方式での接続だった。
sshdのパスワード認証の設定変更だけで、パスワード認証での接続が可能ということなので、簡単に問題が解決してよかった。
ただ、SSHの鍵交換の部分は詳しく知らない。
具体的にはssh-keygenコマンドとか真面目にオプションとか見たことがなかったので、今度、ちゃんと見てみようと思う。