XserverにSSH接続する方法を知りたい!
WordPressでブログを運営しているとXserverにSSH接続して作業をすることも出てきますよね。
今回はXserverにSSH接続する方法を、「Xserverの管理画面で認証キーを作成する方法」と「独自の認証キーを作成する方法」の2パターンに分けて解説していきます。
本記事を読めばどちらの方法でもXserverにSSH接続することができるようになるので、是非参考にしていただければと思います!
この記事で分かること
- SSH接続に必要な認証キーの作成方法
- XserverにSSH接続するための設定方法
XserverでSSH接続を有効化する
まず、XserverでSSH接続を使える状態にする必要があるのでその設定から行います。
サーバーパネルへアクセスし、ログインします。
ログインできたら、アカウント枠の中にある「SSH設定」をクリックしてください。
するとSSH設定のON/OFFを切り替えられる画面が表示されるので、「ONにする」を選択して「設定する」をクリックします。
これでSSH接続の有効化は完了です!
SSH接続用の認証キーを作成する
SSH接続するためには認証キーが必要になるので作成していきます。
認証キーの作成方法は以下の2つがあります。
- Xserverのサーバーバネルから作成する
- コマンドで独自に作成する
基本的には1の方法で作成すれば良いとは思いますが、セキュリティ等の何か特別な理由がある場合には2のように自分で作成することもできます。
2023/07/25現在、Xserverで生成された認証キーの暗号化方式は「RSA」、ビット長が「2048」になっていて、セキュリティ的にはひとまず問題ないレベルです。
ただ、日々コンピュータの性能が向上していることも考えるともう少し余裕をもって作成しておいたほうが無難だと思います。
おすすめは、
・暗号化方式が「RSA」でビット長が「4096」
・暗号化方式が「ed25519」
のいずれかのパターンです。
参考:SSHの公開鍵暗号には「RSA」「DSA」「ECDSA」「EdDSA」のどれを使えばよいのか?
Xserverのサーバーバネルから作成する場合
先程の画面で「公開鍵認証用鍵ペアの生成」タブをクリックします。
すると認証用のパスフレーズ(パスワードみたいなもの)を入力する画面が出てくるので、任意のパスフレーズを入力して「確認画面へ進む」をクリック。
入力内容に間違いが無いかを確認して、「生成する」をクリックします。
すると、認証キーが生成され秘密鍵が記載されたファイル(<サーバーID>.key
)のダウンロードが始まります。
この秘密鍵を自分のPC上の中の任意のパスに保存してください。
任意ではありますが、~/.ssh
配下に置くのが一般的なのでおすすめです。
以上がXserverのサーバーバネルから認証キーを作成する方法です。
次にコマンドで独自の認証キーを作成する方法を解説していきますが、
ここまでの方法で作成した方は「接続確認」まで飛んでしまってOKです!
コマンドで独自に作成する場合
独自の認証キーを作成するには、ssh-keygen
というコマンドを使用します。
ssh-keygen -t ed25519
-t ed25519
の部分は認証キーの暗号化方式の指定ですが、今回はセキュリティ重視のed25519
を採用しました。
このコマンドを実行すると、対話形式で色々と聞かれるので答えてやりましょう。
Enter file in which to save the key → 認証キーの保存先(特になければ/Users/{ユーザ名}/.ssh/id_ed25519_xserver
等がおすすめ)
Enter passphrase (empty for no passphrase) → 任意のパスフレーズを入力
Enter same passphrase again: → パスフレーズを再入力
表示上は何も入力できていないように見えますが、内部的には入力されてます!
この3つを入力すると認証キーが生成されます!
$ ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/{ユーザ名}/.ssh/id_ed25519): /Users/{ユーザ名}/.ssh/id_ed25519_xserver
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/{ユーザ名}/.ssh/id_ed25519_xserver
Your public key has been saved in /Users/{ユーザ名}/.ssh/id_ed25519_xserver.pub
The key fingerprint is:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
The key's randomart image is:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
すると、指定した保存先にid_ed25519_xserver
とid_ed25519_xserver.pub
が生成されています。
id_ed25519_xserver
が秘密鍵でid_ed25519_xserver.pub
が公開鍵です。
公開鍵の方をこれからXserverに登録していきますので、そのファイルの内容をクリップボードにコピーしておきます。
pbcopy < ~/.ssh/id_ed25519_xserver.pub
公開鍵をXserverに登録する(認証キーを独自に作成した場合のみ)
SSH接続する際は公開鍵と秘密鍵を照らし合わせて認証を行いますが、
認証キーを独自に作成した場合は手動でXserverに公開鍵を登録する必要があります。
先程のSSH接続を有効化したときの画面で、「公開鍵登録・更新」タブを選択します。
すると、公開鍵を入力する画面になるので先程コピーした公開鍵をペーストして、「確認画面へ進む」をクリックします。
確認画面が表示されるので、内容を確認して「登録する」をクリックします。
これでXserverに公開鍵の登録ができました。
接続確認
最後に接続確認をしていきます。
下記コマンドで接続してみます。サーバ IDはサーバーパネルログイン際に使用するIDです。
ssh {サーバID}@{サーバID}.xsrv.jp -p 10022 -i ~/.ssh/{作成した秘密鍵のファイル名}
するとパスフレーズの入力を求められるので、認証キーを生成した際に設定したパスフレーズを入力して、Enterを押します。
以下のような表示になればSSH接続が成功しています!
$ {サーバID}@{サーバID}.xsrv.jp -p 10022 -i ~/.ssh/{作成した秘密鍵のファイル名}
Enter passphrase for key '/Users/{ユーザ名}/.ssh/{作成した秘密鍵のファイル名}':
Last login: Tue Jul 25 19:05:30 2023 from xxxxxxxxxxxxxxxxxxxxxxxx
[{サーバID}@xxxxxxx~]$
このとき、Xserverのサーバパネルで認証キーを生成した場合は以下のような警告が出るかもしれません。
$ ssh {サーバID}@{サーバID}.xsrv.jp -p 10022 -i ~/.ssh/{作成した秘密鍵のファイル名}
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/{ユーザ名}/.ssh/{作成した秘密鍵のファイル名}' 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/{ユーザ名}/.ssh/{作成した秘密鍵のファイル名}": bad permissions
{サーバID}@{サーバID}.xsrv.jp: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
この警告はファイルのアクセス権限が緩すぎる(自分以外にも読み取りを許可している)ことが原因なので、下記コマンドで権限を変更してやりましょう。
chmod 600 ~/.ssh/{作成した秘密鍵のファイル名}
接続確認は以上ですが、接続のたびにパスフレーズを入力するのは面倒だと思うのでssh-add
コマンドでパスフレーズを保存しておきます。
一度保存しておけばPCを再起動するまでは再入力不要になります。
まずはCtrl + D
でSSH接続を終了します。
パスフレーズを保存するには以下のようなコマンドを実行します。
ssh-add --apple-use-keychain ~/.ssh/{作成した秘密鍵のファイル名}
実行するとパスフレーズを聞かれるので、改めて入力してEnterを押すと保存が完了します!
$ ssh-add --apple-use-keychain ~/.ssh/{作成した秘密鍵のファイル名}
Enter passphrase for /Users/{ユーザ名}/.ssh/{作成した秘密鍵のファイル名} :
Identity added: /Users/{ユーザ名}/.ssh/{作成した秘密鍵のファイル名} (xxxxxxxxxxxxxxxx)
まとめ
今回はMacでXserverにSSH接続する方法について解説してきました。
SSH接続するまでの手順は以下の通りでした。
- XserverのSSH接続を有効化する
- SSH接続用の認証キーを作成する
- 公開鍵をXserverに登録する(認証キーを独自に作成した場合のみ)
また、この内「2.認証キーを作成する」には
- Xserverのサーバパネルで作成する方法
- コマンドで独自に作成する方法
の2通りがありました。
最後までお読みいただきありがとうございました!