macOS+Vagrant 外付けドライブ使用時の秘密鍵の権限エラーへの対処法

Vagrantデータの容量が大きくなってきたため、外付けドライブにVagrantデータを配置するように設定したところ、Vagrant up時に秘密鍵の権限エラーが発生するようになった。対処方法を残します。

環境

macOS Mojave 10.14
Vagrant 2.2.3
外付けドライブ SSD

エラーメッセージ

外付けドライブ上の秘密鍵insecure_private_keyのパーミッションを0600に変更できないと表示された。

The private key to connect to this box via SSH has invalid permissionsset on it. The permissions of the private key should be set to 0600, otherwise SSH willignore the key. Vagrant tried to do this automatically for you but failed. Please set thepermissions on the following file to 0600 and then try running this command again:

/Volumes/ExternalSSD/.vagrant.d/insecure_private_key

Note that this error occurs after Vagrant automatically tries todo this for you. The likely cause of this error is a lack of filesystempermissions or even filesystem functionality. For example, if yourVagrant data is on a USB stick, a common case is that chmod isnot supported. The key will need to be moved to a filesystem thatsupports chmod.

対処

chmodでパーミッションを変更しようとしてもできないので調べたところ、対処方法としては、外付けドライブのパーミッションを変えられるようにするか、秘密鍵を別の場所に移すかのどちらかのようだ。

今回は秘密鍵を移動することにした。

手順としては、まず秘密鍵を内部ドライブに移動し、次に外付けドライブに移動した秘密鍵へのシンボリックリンクを貼る。

$ mv /Volumes/ExternalSSD/.vagrant.d/insecure_private_key ~/.vagrant.d/insecure_private_key
$ ln -s ~/.vagrant.d/insecure_private_key /Volumes/ExternalSSD/.vagrant.d/insecure_private_key

vagrant reloaddでVagrantを再起動し、エラーが発生しなければOKです。

以上。