背景
いつも新しくboxを立ち上げる時は、Vagrantfile
をつくってvagrant up
して、vagrant ssh
して自分がいつも使ってる公開鍵を~/.ssh
以下においてexitしてから、ssh vagrant
とかしませんか?ちなみに以下みたいに設定したりしてますよね?
.ssh/config
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_
ではでは〜