Windows Subsystem for Linux(旧称:Bash on Windows、以下WSL)からLinuxサーバーにSSH接続ができませんでした。原因としては、Windowsと共有しているディレクトリ上では、ファイルの権限が変更できないため、ファイルをWSLのディレクトリに移動してから、権限を変更する必要がありました。
#ダウンロードしたpemファイルでの接続がエラーになる
/mnt
以下のディレクトリにダウンロードした.pem
ファイルで接続してみます。
$ ssh -i "yoshioms.pem" ec2-user@linux-server
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0555 for 'yoshioms.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "yoshioms.pem": bad permissions
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
0555では、権限が強すぎるのでダメと言われています。ls -l
してみると、
-r-xr-xr-x 1 yoshioms yoshioms 1696 Jul 16 17:26 yoshioms.pem
確かに、実行権限までついちゃってます。chmod
で権限を変更してみます。
$ chmod 0400 yoshioms.pem
$ ls -l
-r-xr-xr-x 1 yoshioms yoshioms 1696 Jul 16 17:26 yoshioms.pem
ダメだ。変わらない。
#WSLディレクトリにpemファイルを移動してやってみる
しばらく悩んだのですが、Windowsと共有している/mnt
ディレクトリでは、ファイルの権限が絞れないみたいです。.pem
ファイルを/home/<user>
ディレクトリに移動したら、権限が変更できました。
$ mv yoshioms.pen ~/
$ cd
$ chmod 0400 yoshioms.pem
$ ls -l
-r-------- 1 yoshioms yoshioms 1696 Jul 16 20:53 yoshioms.pem
この状態でssh
してみると、無事接続できました!
$ ssh -i "yoshioms.pem" ec2-user@linux-server
Last login: Mon Jul 16 12:24:18 2018 from myip
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[ec2-user@linux-server ~]$