実験のために作った計算機は私が借りているレンタルサーバ(xserver)に置いています。そのときにssh接続をする必要があったので手順のメモしておきます。
1. やりたいこと
- レンタルサーバ(xserver)にssh接続する
- ssh接続はWSL上で行う
2. ssh接続の準備
SSH接続の手順通りに設定する。
公開鍵は一つしか登録できないので注意が必要です。再登録をするとその鍵に更新されます。
秘密鍵の置き場所はどこでもいいですが、私はユーザ>ユーザ名直下に置いています。
3. SSH接続する
SSHソフトの設定(Tera Term)に記載のSSHアカウント情報を参考にします。
次のコマンドを打ってSSH接続をします。
ssh [サーバID]@[サーバ番号].xserver.jp -p 10022 -i [秘密鍵のpath]
接続できればOKです。
3-1. 秘密鍵のパーミッションを変更する
WSL上でssh接続をすると秘密鍵のパーミッションが危険だから変更しろと出てきます。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '[秘密鍵]' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "[秘密鍵]": bad permissions
[サーバID]@[サーバ番号].xserver.jp: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
3.2 WSL上でchmodを用いてパーミッションを変更できるようにする
Linuxならchmodでパーミッションを変更するだけですが、WSLでは適切に設定をしてあげないとchmodでパーミッションを変更できません。
マウントオプションを変更するためにオプションを定義します。
sudo vi /etc/wsl.conf
そしてファイルの内容を次のように編集します。
[automount]
options = "metadata"
:wqで上書き保存をするとファイルが新規作成された上でvimを終了できます。
この後windowsを再起動するか、アンマウント後マウントすると準備は完了です。
3.3 秘密鍵のパーミッションを適切に変更する
chmod 600 [秘密鍵のpath]
変更後、パーミッションが変更されたか確認します。
ls -la
パーミッションを一覧表示して、秘密鍵のパーミッションが"-rw——-"になっていれば準備は完了です。
この後、もう一度ssh接続するコマンドを実行します。
[おまけ]WSLでパスワードを忘れたとき
WSLのパスワードを全然使わないので忘れます。その時の再設定の仕方です。
まずは、コマンドプロンプトかPowerShellを起動して次のコマンドを実行します。
wsl -u root
そうするとrootでWSLにログインできるので、使用しているユーザのパスワードを再設定します。
password [username]
4. おわりに
ssh接続するまでに意外と時間がかかった。
登録できる公開鍵-秘密鍵のペアが1ペアだけなので、他のマシンからアクセスする場合は同じ秘密鍵が必要・・・?