Help us understand the problem. What is going on with this article?

WSL2でsshしようとしてBad owner or permissions

現象

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と同じように使える。

.ashrc
# alias=''と同じように使える関数を定義
# $@ は引数すべて
function _ssh(){
  command chmod 644 ~/.ssh/config
  command ssh $@
}
.profile
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/

Ayutanalects
車輪を何度でも開発したい札幌のWebえんじに屋です。2011年からフリーランス。WindowsユーザーのPHPerでフロントエンド(React)も少々。Apache NetBeans IDEが好きです。
http://kaworks.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away