OSX Vagrant 1.8.5 authorized_keys Permission 不具合 issues#7610 を patchコマンド で 解決する(メモ)
OSX Yosemite上で利用しているVagrantを現時点(2016/09/06)での最新版である1.8.5にバージョンアップしました。
2ヶ月くらい前からの話なので今更かもしれませんが、
噂通り? Vagrant up
時に認証エラーとなる
authorized_keysのPermissionに関する不具合にあたりました。
ワークアラウンドは幾つか出ており、次期バージョン(そろそろ出る?)では解決すると思いますが、
既にGithub上でISSUES#7610として出ており、Bugfix済みでCloseもされていますので
今回は、Githubからパッチファイルをダウンロードとpatchコマンドを利用して解決してみました。
なお、自分用メモも兼ねて記事にしています。
Githubよりパッチファイルをダウンロード
GithubではCommitのURLの拡張子を.patch
とすると
パッチファイル(差分形式のテキスト)の形式でダウンロード可能です。
今回のCommitのURLは以下のなので
https://github.com/mitchellh/vagrant/commit/a6760dd8e7743e048cb2f38c474e05889356e8ac
このように.pacth
を末尾に付加するとパッチファイル(差分形式のテキスト)の形式で返してくれます。
https://github.com/mitchellh/vagrant/commit/a6760dd8e7743e048cb2f38c474e05889356e8ac.patch
patchコマンド
patchコマンドを使うとパッチファイル(差分形式のテキスト)を利用して、簡単にパッチを当てることが可能です。
今回は対象ファイルが1つなので、直接指定する形をとります。
patch パッチ宛先ファイルのパス < patchファイルのパス
なお、OSX Yosemiteでの、今回のパッチ宛先ファイルのパスは/opt/vagrant/embedded/gems/gems/vagrant-1.8.5/plugins/guests/linux/cap/public_key.rb
となります。
手順
OSX上でVagrant1.8.5のISSUES#7610を
以下手順でパッチをあてます。
# 1.patch用にディレクトリを新規作成し移動します
mkdir patch
cd patch
# 2.Github上から該当のissues#7610のパッチファイルを取得します
wget https://github.com/mitchellh/vagrant/commit/a6760dd8e7743e048cb2f38c474e05889356e8ac.patch
# 3.patch コマンドを利用して取得したpatchを適用します
sudo patch /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/plugins/guests/linux/cap/public_key.rb < a6760dd8e7743e048cb2f38c474e05889356e8ac.patch
# 4.patchが適用されていることを確認します
sed -n 57p /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/plugins/guests/linux/cap/public_key.rb
参考
以下実行結果です。
~ $vagrant -v
Vagrant 1.8.5
~ $mkdir pacth
~ $cd patch
patch $
patch $wget https://github.com/mitchellh/vagrant/commit/a6760dd8e7743e048cb2f38c474e05889356e8ac.patch
--2016-09-06 14:55:47-- https://github.com/mitchellh/vagrant/commit/a6760dd8e7743e048cb2f38c474e05889356e8ac.patch
Resolving github.com... 192.30.253.113
Connecting to github.com|192.30.253.113|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: 'a6760dd8e7743e048cb2f38c474e05889356e8ac.patch'
a6760dd8e7743e048cb2f38c474e05889356e [ <=> ] 863 --.-KB/s in 0s
2016-09-06 14:55:49 (31.7 MB/s) - 'a6760dd8e7743e048cb2f38c474e05889356e8ac.patch' saved [863]
patch $sudo patch /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/plugins/guests/linux/cap/public_key.rb < a6760dd8e7743e048cb2f38c474e05889356e8ac.patch
Password:
patching file /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/plugins/guests/linux/cap/public_key.rb
patch $sed -n 57p /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/plugins/guests/linux/cap/public_key.rb
chmod 0600 ~/.ssh/authorized_keys
patch $