LoginSignup
27
29

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-01-21

背景

いつも新しく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_

ではでは〜

27
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
29