ssh接続しようとしたら怒られた
- 今日も元気にぬるりとssh接続するーと思った矢先……
$ ssh hoge
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for '/Users/hikaru/.ssh/keys/hoge.key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/hikaru/.ssh/keys/hoge.key": bad permissions
ec2-user@13.231.153.118: Permission denied (publickey).
@マークが多すぎる
- 群衆恐怖症の自分にとっては二度と見たくない表示
- 内容を読んで見ると要するに
君のprivate key は権限が弱すぎるよ! まったく馬鹿げてる!
とのこと。権限を確認してみる。
$ ls -l
.rw-r--r-- 1.7k hikaru staff 2021-03-11 11:12 hoge.key
- なるほど……秘密鍵というのはその重要性・秘匿性から権限を限定し、安全性を担保しないといけないらしい。
- スマホにロックを掛けておかないとあなたの伴侶に覗かれてしまうのと同じか(たぶん違う)
権限を限定してみる
- 上記の例だと、権限的にユーザー以外の人間にも読まれてしまう可能性がある(書き込み・実行は元々不可)
- ユーザーのみ、読み込みができるようにする。
$ chmod 400 hoge.key
いざssh接続
Last login: Thu Mar 11 11:09:22 2021 from
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
- うまくいった!
実を言うと他の箇所でもハマっていた
- あたかも上記の対処法で万事解決したという風になっていますが、それでもエラーが出てしまいました
Connection closed by XXX
- 接続を試みてくれたはいいものの、なぜか弾かれているようでした……
- いろいろ調べてみると、
userの指定を間違えているのではないか?という結論に至りました - いつもはAWSのインスタンスに
ec2-userとしてssh接続していたのですが、今回接続したいインスタンスはAmazon LinuxではなくUbuntuだったので、デフォルトのユーザー名が違ったのでした
config (修正前)
Host hoge
HostName X.XXX.XXX.XXX
Port 22
User ec2-user
IdentityFile ~/.ssh/keys/hoge.key
config (修正後)
Host hoge
HostName X.XXX.XXX.XXX
Port 22
User ubuntu
IdentityFile ~/.ssh/keys/hoge.key
- これで無事、接続できるようになりました! やったね!