ShellScript
vagrant

Vagrantでvagrantのデフォの秘密鍵じゃなくて自分のいつもの秘密鍵を使えるようにするシェルスクリプト

More than 1 year has passed since last update.

背景

いつも新しくboxを立ち上げる時は、Vagrantfileをつくってvagrant upして、vagrant sshして自分がいつも使ってる公開鍵を~/.ssh以下においてexitしてから、ssh vagrantとかしませんか?ちなみに以下みたいに設定したりしてますよね?

Host vagrant
  HostName 127.0.0.1
  User vagrant
  Port 2222 # ← これは変わる可能性がある

こういう風に書いてるならssh vagrantでVagrantに入れますよね?

もちろんいつもの自分の鍵をssh-add ~/.ssh/id_rsaしてる前提です。

書いてた

で、その作業がめんどくさすぎて以下のスクリプトを自分は使ってます。

途中で秘密鍵のパスフレーズが途中で聞かれるので入力してください。

コメントがゆるふわなのは気にしないでください。

set_vagrant.sh
#!/bin/bash -eu
echo べいぐらんとに自分のいつもつかってる公開鍵をつっこむよ!

echo べいぐらんが立ち上がってないなら起動
[ -z "`vagrant status | grep running`" ] && echo 立ち上がってないので起動させるよ! && vagrant up

vagrant ssh -- cat .ssh/authorized_keys > authorized_keys

[ `cat authorized_keys | wc -l` == 3 ] && echo すでに設定してるみたいなので終了 && exit 1

echo 自分の秘密鍵から公開鍵を生成する(パスフレーズを入力してください)
ssh-keygen -y -f $HOME/.ssh/id_rsa >> authorized_keys

echo べいぐらんとに入るためのssh-configを生成
vagrant ssh-config > ssh_config

echo 公開鍵をvagrantユーザーのディレクトリに設置
scp -F ssh_config authorized_keys default:.ssh/authorized_keys

cat <<_EOF_

構築DONE!

------------------------------
$ cat $HOME/.ssh/config
Host vagrant
  HostName 127.0.0.1
  User vagrant
  Port 2222 # ※Port番号は適宜変更の必要あり

上記を記述すると
$ ssh vagrant
で仮想環境に入れるようになるよ!

そんじゃーね☆
------------------------------

_EOF_

ではでは〜