ssh/をコピペすると怒られた
Windows PCを買い替えたので、古いPCのWSL環境から新しいPCのWSL環境に.ssh/のディレクトリをコピーしたのだけれど、その際にパーミッション周りで少し詰まったのでメモ。
結論から言えば、例えば鍵のパスが/root/.ssh/keys/id_rsaであるなら下記の様に設定すればよかった
chmod 600 /root/.ssh/keys/id_rsa
簡単な説明
まず、コピーしてそのまま
ssh hogehoge
とssh接続しようとすると、
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/root/.ssh/keys/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/root/.ssh/keys/id_rsa": bad permissions
git@github.com: Permission denied (publickey).
と怒られた
エラー文を軽く訳せば
/root/.ssh/keys/id_rsa' のパーミッション 0644 は開きすぎています。
秘密鍵のファイルは、他人がアクセスできないようにする必要があります。
この秘密鍵は無視されます。
……
つまりパーミッションを変更して他人がアクセス出来ないようにすればいいということらしい
パーミッションに関しての説明は省くが、Linuxの権限確認と変更(chmod)(超初心者向け)等を読めば理解出来ると思う
なので、もし仮に鍵を /root/.ssh/keys/ に保存していたのなら、
chmod 600 /root/.ssh/keys/id_rsa
# 一斉に変更するなら chmod 600 /root/.ssh/keys/*rsa とか?
と入力すればいい
※chmod 600……をchmod 700……にしても問題はない
つまり、別パターンとして鍵を /root/.ssh/ に保存していたのなら
chmod 600 /root/.ssh/id_rsa
# 一斉に変更するなら chmod 600 /root/.ssh/*rsa とか?
ということだと思う
※chmod 600……をchmod 700……にしても問題はない