現象
WSLをスルーしていたけど、ついにねんがんのWSL2環境にしたぞ!
/home/username/.ssh -> /mnt/c/Users/Username/.ssh
などとシンボリックリンクを張って、
chownとchmodして、問題なくsshも接続できたぞ!ヨシ!mintty今までありがとう!
と安心していたら、少ししてから
$ssh -i filename username@hostname
Bad owner or permissions on /home/username/.ssh/config
が出てしまった。
$ls -al ~/.ssh/config
-rwxrwxrwx 1 username username 3579 Jul 30 05:14 /home/username/.ssh/config
おや?
どうも、Windows側で.ssh/configを上書き保存すると、777に戻ってしまう様子。
$chmod 644 ~/.ssh/config
とすれば、使えるようになる。
環境
Apline WSL
https://www.microsoft.com/ja-jp/p/alpine-wsl/9p804crf0395?activetab=pivot:overviewtab
対策
Alpine Linuxのシェルはbashではなくash
~/.bashrc
→ ~/.ashrc
~/.bash_profile
→ ~/.profile
のように読み替えればほとんどbashと同じように使える。
# alias=''と同じように使える関数を定義
# $@ は引数すべて
function _ssh(){
command chmod 644 ~/.ssh/config
command ssh $@
}
source ~/.ashrc
このように書いて再起動に備えて、
今起動中のターミナルでも使えるようにして
$source ~/.ashrc
sshの頭に_を付けたaliasを定義したので、
$_ssh -i filename username@hostname
とする。
自分しか使わないので、これでしばらく様子見。
参考
ashとは?bashじゃないの?Alpine Linuxのコマンド
https://qiita.com/HorikawaTokiya/items/f9188d05a58bad47ce8d
bashで引数つきのエイリアスを設定する
https://hacknote.jp/archives/8043/
シェルスクリプトの特殊変数$@と$*の違い
https://hacknote.jp/archives/15421/