低レベルインフラエンジニアの忘備録

Linux系の各種作業を自分用の忘備録として残しています

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」コマンドはvagrantSSHコンフィグを出力させるコマンドです
「--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コマンドのオプションに関してあまり理解できていなかったなぁ~と反省しております。。。