通常vagrant up
コマンド実行後にvagrant ssh
コマンドを実行すれば、Vagrantの仮想マシンに接続できます。
しかし、場合によってはssh
コマンドでvagrantに接続したくなることもあるでしょう。
この記事では、鍵認証
を使用した方法とパスワード認証
を使用したssh接続の方法について紹介します。
鍵認証でssh接続を行う
まずVagrantfileのあるディレクトリで仮想マシンを起動します。
vagrant up
次に以下のコマンドを実行し、vagrantの仮想マシンの接続先情報を表示します。
※ vagrant up
コマンド実行後、Vagrantfile
ファイルのあるディレクトリで実行します。
vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/hogeuser/MyVagrant/centos8/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
上記の接続情報を元に、ssh コマンドで接続します。
ssh -p 2222 vagrant@127.0.0.1 -i /Users/hogeuser/MyVagrant/centos8/.vagrant/machines/default/virtualbox/private_key
パスワード認証でssh接続を行う
Vagrant仮想マシンの/etc/ssh/sshd_config の設定を変更することでパスワード認証を行うことができます。
※ パスワード認証を行うにはsshd_config
のPasswordAuthentication
の設定がyes
となっている必要がある。
まず、vagrantの仮想マシンへログインします。
vagrant ssh
sshで接続するユーザーのパスワードを設定します。(既にパスワードが設定されている場合は実施不要です)
sudo passwd [ユーザー名]
vi で「/etc/ssh/sshd_config」を開きます。
開いたら/
の後にPasswordAuthentication
を入力すると次の行が見つかります(CentOS8)
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication no
PasswordAuthentication
をyes
に設定します。
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no
#PasswordAuthentication no
esc
キー押下後、:wq!
で設定を保存したらsshdを再起動します。
sudo systemctl restart sshd
ローカル端末に戻り、以下のようにコマンドを実行するとパスワード認証を行えるようになります。
ssh -p 2222 vagrant@127.0.0.1
vagrant@127.0.0.1's password:
Last login: Mon Aug 16 23:23:35 2021 from 10.0.2.2
[vagrant@centos8 ~]$
sshコマンドで使用している接続先についてはローカル端末でvagrant ssh-config
(※)を実行すると確認することができます。
※ Vagrantfile
ファイルのあるディレクトリでvagrant up
コマンド実行後(実行済みであれば不要)に実行
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/hogeuser/MyVagrant/centos8/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL