Vagrantで構築したゲストOS(CentOS)に簡単にSSHログインさせる(パスワードなし)
基本的なことなのですが、若干ハマってしまったのでメモしておきます
通常はゲストOSのVagrantfileがあるディレクトリで、
# vagrant ssh
と入れればパスワードなしでSSHログインできますが、chefの検証(knife-solo)などでダイレクトにSSHログインしたかったため、
パスワード無しでログインできるようにします
環境
RHEL6.7(ホストOS)
Vagrant 1.8.1
CentOS6.7(ゲストOS)
Vagrantfileの修正
対象のゲストOS用のVagrantfileを修正します
# Create a private network, which allows host-only access to the machine # using a specific IP. # config.vm.network "private_network", ip: "192.168.33.10" config.vm.network "private_network", ip: "192.168.33.10"
赤字の行を追加して、内部ネットワーク用のアドレスを保持するようにします
※今回はデフォルト値をそのまま利用しています
ゲストOSの再起動
対象のゲストOS用のVagrantfileのあるディレクトリで、以下のコマンドを実行します
# vagrant reload
念のためPING確認
ホストOS⇒ゲストOSへPINGが通ることを確認します
# ping 192.168.33.10 PING 192.168.33.10 (192.168.33.10) 56(84) bytes of data. 64 bytes from 192.168.33.10: icmp_seq=1 ttl=64 time=0.248 ms 64 bytes from 192.168.33.10: icmp_seq=2 ttl=64 time=0.232 ms 64 bytes from 192.168.33.10: icmp_seq=3 ttl=64 time=0.223 ms 64 bytes from 192.168.33.10: icmp_seq=4 ttl=64 time=0.222 ms ^C --- 192.168.33.10 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3556ms rtt min/avg/max/mdev = 0.222/0.231/0.248/0.015 ms
Vagrant用のSSH設定を~/.ssh/configに追加
対象のゲストOS用のVagrantfileのあるディレクトリで、以下のコマンドを実行します
# vagrant ssh-config --host 192.168.33.10 >> ~/.ssh/config
「vagrant ssh-config」コマンドはvagrantのSSHコンフィグを出力させるコマンドです
「--host」オプションを付けるとHostのコンフィグが変更されたコンフィグが出力されます
「~/.ssh/config」には以下の設定が追加されます
Host 192.168.33.10 HostName 127.0.0.1 User vagrant Port 2200 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile "/root/vagrant/centos67/.vagrant/machines/default/virtualbox/private_key" IdentitiesOnly yes LogLevel FATAL
「~/.ssh/config」に設定を入れておくと、sshコマンドでオプションをわざわざ指定せずに簡単にSSHログインすることができます
SSHでログインできることを確認
# ssh 192.168.33.10 Last login: Mon Apr 25 08:41:59 2016 from 10.0.2.2 [vagrant@localhost ~]$
パスワードなしでログインできます
今回の件で「~/.ssh/config」の働きやsshコマンドのオプションに関してあまり理解できていなかったなぁ~と反省しております。。。