こんにちは。
本日のブログ記事は、「エックスサーバーで SSH(Secure Shell) 接続する手順」です。
エックスサーバーさんの場合、2025/06/17時点では、SSH接続する場合には、パスワード認証が利用できず、公開鍵認証方式で行う必要があります。
参考ページ: SSH設定 | エックスサーバー
SSH接続の設定を行なって、初回でサーバーへ接続するためにはややハードルがありますので、その手順を記録しておきます。
目次
環境
- エックスサーバーは契約済み
- Apple M3 Pro / OS Sonoma 14.4
エックスサーバーのサーバーパネルでSSH設定
参考ページ: SSH設定 | エックスサーバー
上記のページを参考にしながら、SSH接続の有効化(ON)にして、次に公開鍵認証用の鍵ペアを作成。秘密鍵(サーバー名.key なお、ここでの説明では sample.key とします)をダウンロード。
パスフレーズは忘れずメモをしておいてください。
秘密鍵を設置する
ダウンロードした、ダウンロードしたsample.keyを以下のコマンドで移動。
# ファイルの移動
$ mv ~/Downloads/sample.key ~/.ssh/
なお、sample.key という名称では管理しづらいと思いますので、移動した後にファイル名を変更してください。
パーミッションの変更
.sshディレクトリと秘密鍵のパーミッションを変更。
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/sample.key
ログイン
ログインする時には、初期ドメインなどのサーバーの契約情報を確認するようにしてください。これは全員の情報が異なるため、つまづきやすいポイントです。
サーバー(ホスト名): サーバーID.xsrv.jp(初期ドメイン)
例:xsample.xsrv.jp
※ホスト名(sv***.xserver.jp)でも設定が可能です。
エックスサーバーは10022ポートを使います。通常の22ポートではないので指定が必須になります。
ssh サーバーID@サーバーID.xsrv.jp -p 10022 -i ~/.ssh/sample.key
ログインの簡略化とパスフレーズの省略
いちいち上記の長いコマンド打つのが大変なので、.sshにconfigファイルを作りログインを簡略化します。
vi ~/.ssh/config
.ssh/config に以下の記述を追加します。
Host sample #任意のコマンド名
HostName サーバーID.xsrv.jp
Port 10022
User サーバーID
IdentityFile ~/.ssh/sample.key #秘密鍵のファイル名
ServerAliveInterval 60 #sshの自動切断を防ぐために記述
ここまでの操作で、以下のコマンドでアクセスが可能。
ssh sample
最後にパスフレーズを省略できるようにします。ssh-agent とssh-add を利用します。
ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-YQW9LjOQAQSF/agent.3090; export SSH_AUTH_SOCK;
SSH_AGENT_PID=3091; export SSH_AGENT_PID;
echo Agent pid 3091;
次に
eval `ssh-agent`
$ ssh-add ~/.ssh/sample.key
Enter passphrase for /home/mishihara/.ssh/sample.key: ←ここでパスフレーズの入力をする。
Identity added: /home/mishihara/.ssh/id_rsa_hoge (/home/mishihara/.ssh/id_rsa_hoge)
ここまでできれば、パスフレーズを省略した状態で、サーバー側にSSH接続ができます。
ssh sample