Vagrantでのssh接続

ssh 接続にはパスワード認証方式と、公開鍵認証の二通りの接続方法がある。

公開鍵認証

  • vagrantでは、ゲストOSの初回起動時にホストOS側の鍵情報を自動で変更し、ゲストOSと暗号の再調整を行っている。
vagrant ssh

vagrant ssh-config

で置換後に使う秘密鍵ファイルの場所を取得し、

ssh -p [ポート番号] -l vagrant -i /path/to/private_key [IPアドレス]

で同じことができる。

もしくは、起動時に置き換えないように設定。Vagrantfileに以下の一行を追加する。

config.ssh.insert_key = false

複数のマシンで共通のsshキーを使用したい場合なんかはこうしないといけない。

ssh コマンドで秘密鍵ファイルの場所を~/.ssh/config 中に追記しておけば、明示的に指定する必要はなくなる。

vagrant ssh-config >> ~/.ssh/config
  • 鍵認証による ssh を行おうとすると ssh する元のサーバで公開鍵を生成し、ssh 先のサーバに持って行って.ssh/authorized_keysに追記する必要がある

公開鍵の生成

ssh-keygen -t rsa

公開鍵の.ssh/authorized_keys へのコピー

ssh-copy-id root@192.168.100.20

パスワード認証

  • パスワード認証の場合、Vagrantfile中でパスワードとユーザー名を設定できる。
  config.ssh.username = 'vagrant'  
  config.ssh.password = 'vagrant'