【Bash on Windows】 SSHでConfigファイルをうまく実装できないときの対策法
Bash on Windows(以下BoW)で.ssh/configを設定してsshを実行したときに
Bad owner or permissions on /mnt/c/Users/hoge/hoge/.ssh/config
のようなエラーを出されて困った際のメモ.
同じように困った人の解決策の一つになれば幸い.
状況
・BoWにおけるホームディレクトリを [ /home/ユーザー名/ ] ではなく[ /mnt/c/Users/hoge/Documents/ ] 等windowsに側のディレクトリにしている.
解決策
1.~/.ssh/configの実行権限を変更する.
同様のエラーが出てググるとまず最初に出てくるであろう解決策.
chmod 600 ~/.ssh/config
とすれば解決する.
そもそもWindowsにおけるファイルにはmacOSやLinuxOSのような
パーミッションという概念が存在しない
(代わりに拡張子の属性で分別して実行ファイルか否かの判断をしている).
2.ホームディレクトリを元に戻す.
windows側のディレクトリで1の解決策が使えないなら,ホームディレクトリを
ホームディレクトリの変更方法は,/etc/passwdを変更するとできるので,
この方法で構わない人はこれで対応してください.
3.configファイルだけLinux側に置いておく
ホームディレクトリをwindowsOS側においているのにもいろいろ事情があるはず.
そこで,百歩譲ってconfigファイルは/home/ユーザー名/.ssh/configに置くとして,
ホームディレクトリを変えないで対応する方法を以下に記載する.
まず,configファイルを/home/ユーザー名/.ssh/configにコピー.
cp ~/.ssh/ /home/ユーザー名/.ssh/config
つぎに,~/.bashrcを開いて,以下を追記
alias ssh='ssh -F ./home/ユーザー名/.ssh/config'
そして,.bashrcを実装.
source ~/.bashrc
以上.
ただし,注意して欲しいのは,ssh で-F オプションを使うと,
に記載している設定が読み込まれないらしい.
なので,適宜必要な設定はローカル側で読み込む/home/ユーザー名/.ssh/configファイルにコピーしておくのが無難.
ではでは.