Xserverにsshでアクセスするための設定(Mac版)
XserverのWebサーバーへ自分のMacからsshでアクセスするための設定をまとめておきます。XserverのサーバにはWordpressのサイトの素材やデータが格納されています。Xserverのサーバにアクセスするということはサーバ上のWordpressの素材やphpファイルを直接編集したり、pythonなどのコードを配置してをWordpressの記事を生成したりするなど操作などができるのです。
(枕詞)自分のPCからXserverに接続してターミナルでコマンド→リターンキーをターン!するやつをしたいです
PCを操作するといえば、WindowsのスタートボタンやMacのランチャーからChromeやWordといったアプリを操作するということを思う浮かべる方も多いかと思います。ウィンドウをマウスなどで操作するUIをGUI(Graphical User Interface)と言います。
PCを操作する方法には、そのようなグラフィカルインターフェースによる方法だけではなく、キーボードからコマンドを直接入力してリターンするやりとりを行う方法もあるのです。CUI(Character User Interface)といいます。
CUIなインターフェースによる操作は、Macですと端末ターミナル、WindowsですとコマンドプロンプトやPowershellといったターミナルソフトを起動して、コマンドを入力してフォルダの移動やファイルのコピーなどを行うことができます。ハッカーが黒い画面にキーボードでパチパチ文字を入力しているときのイメージです。
端末ターミナルからsshでサーバにアクセスして、サーバを端末からコマンドを入力して操作します。本サイトはSP500やNASDAQ100の値上がり値下りを取得するpythonでプログラムをサイトの画面を構成する作りになっておりまして、Xserverのサーバ上でpythonプログラムが動作する環境を整えたり、pythonプログラムを編集する必要があるのです。それら作業を行うために、自分のPCからXserverのサーバへssh通信したいのです。
そもそもSSHとは何か?(SSHの設定をするとは何をするのか?)
SSH(Secure Shell)は、コンピュータからコンピュータへ接続するプロトコルで、暗号化された通信を行うことで、データの盗聴や改ざんを防ぐ仕組みです。SSHの機能は認証と暗号化通信から成り立っておりまして、認証には公開鍵暗号方式を使います。
認証:クライアント(接続する側)とサーバー(接続される側)がそれぞれ秘密鍵と公開鍵を持ちます。クライアントがサーバーに接続すると、サーバーはクライアントの公開鍵を使って本人確認を行います。
暗号化通信:認証が完了すると、通信データが暗号化され、第三者にデータが読み取られないようにします。
SSHの詳しい仕組みについては専門書を参考にしてください。 ここではXserverとのssh通信に必要になるのは「公開鍵」と「秘密鍵」が必要だということだけ抑えてください。鍵は実際にはファイルです。公開鍵はXserver上に設定し、秘密鍵は自分のPCに持っておきます。秘密鍵は絶対に外部に公開してはいけません。
Xserverに公開鍵、自分のPCに公開鍵と秘密鍵を配置して、XserverとSSH通信できるようにすることが今回のゴールです。
Xserverへssh接続設定する手順
以下の手順でMacのターミナルからXserverのサーバへssh接続してログインできるようになります。
- Xserverさんで「SSH設定」を行う
- 公開鍵をサーバに、秘密鍵を自分のPCへ配置
- SSHクライアントソフトでXserverへ接続
- 設定まとめファイルを作ると次回のアクセスが楽になる
参考情報
私は以下のサイトを参考にSSH設定しました。本記事はこれらサイトを自分なりに補間したものとなります。先駆者のお2人に感謝いたします。とても助かりました。
https://qiita.com/ryo2132/items/38b5a93b3df476dd2b44
Xserverさんに「SSH設定」を行う
Xserverのサーバーパネルにアクセスして「SSH設定」で操作を行います。公開鍵がXserver側に設置され、秘密鍵(のファイル)が自分のPCにダウンロードできたら「Xserver上でのSSH設定」は完了です。
Xserverのサーバーパネルへログイン
https://secure.xserver.ne.jp/xapanel/login/xserver/server
サーバーパネルのSSH設定へGo
サーバIDは後で使うのでメモっておきます。またサーバ番号も必要なのでXserverさんからのメールなどで確認しておきます。
SSHの設定をON
公開鍵と秘密鍵を作成します
確認画面へ進みます。
「生成する」を押下すると、公開鍵はXserverに配置され、秘密鍵({サーバ番号に準じた文字列}.key)が自分のPCにダウンロードされます。秘密鍵は自分のPCにて厳重に管理してください(他の人の目につく場所においてはいけません)。パスフレーズは忘れないようにしましょう。
自分のPCで鍵を作ってXserverに公開鍵をアップする方法もありますが本サイトでは説明を割愛します。
vdeep.netさんの方では自分のPCで鍵を生成する方法を解説しておられますので、興味がある方は→へアクセスください。http://vdeep.net/xserver-ssh
秘密鍵を自分のPCへ配置
秘密鍵(sample.key)はダウンロードされますのでPC内の適切ディレクトリに格納します。
sshの鍵を格納するディレクトリを作成します。例えば「~/.ssh」です(すでにある場合はそのままでOK)。~/はホームディレクトリ、.sshは「隠しディレクトリ」を表します。秘密鍵ファイルはは id_xserver_rsa とリネームしています。
最後の仕上げにディレクトリと秘密鍵のパーミッションを変更します。700は自分はディレクトリに対して読み/書き/実行(プログラムとして実行できる)可能、600は読み/書き可能、実行はできない、ということを意味します。chmodコマンドはUnix系のOS(linuxやMac)で使われるコマンドで、ファイルの自分、グループ、任意のユーザに対する読み書き実行の権限を指定します。詳細はLinuxの書籍などを参照ください。
以下のコマンドは端末ターミナルでの入力をイメージしています。$記号はターミナルの左端を示していまして実際の画面の表示とは異なります。
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_xserver_rsa
Xserverへの接続テスト
sshのコマンドを使用してxserverに接続します。
$ ssh -i ~/.ssh/id_xserver_rsa -p 10022 {自分のサーバID}@{自分のサーバID}.xsrv.jp
serveridはxserverからのメールやサーバーパネルで確認できます。sshコマンドに-iオプションで秘密鍵のパス、-p オプションでXserver側のsshプロトコルのポート、Xserverのアドレスを指定しています。ポートとはTCP/IPプロトコル(インターネット通信を行うための仕組み)でコンピュータ間の通信を行う際に、コンピュータが通信に使用するプログラムを識別するための番号です。例えば、Xserverではsshでは10022番を使うようにしています(sshはよく22番を使いますがXserverさんはセキュリティを考慮してポート番号を変えているようです)。また、HTTPS(Webサイトの通信)だと443番ポートを使います。
端末ターミナルでのコマンド入力は以下画像のような流れです。パスフレーズが必要になります。zeronekoってのが私(midoriってアカウント名です)のMacです。zeronekoのターミナルから自分のサーバIDのマシンへターミナルが移っています。
zeroneko:website midori$ cd ~/.ssh
zeroneko:.ssh midori$ ls
config github id_rsa id_rsa.pub id_xserver_rsa known_hosts known_hosts.old
zeroneko:.ssh midori$ ssh -i ~/.ssh/id_xserver_rsa -p 10022 {自分のサーバID}@{自分のサーバID}.xsrv.jp
Enter passphrase for key '/Users/midori/.ssh/id_xserver_rsa':
Last login: Sat Nov 2 17:19:46 2024 from {自分のPCのIPアドレス}
[{自分のサーバID}@{自分のサーバ番号} ~]$
自分のマシンzeronekoからXserverのサーバにアクセスできました。
設定ファイルでコマンドの短縮
これで自分のPCの端末ターミナルからXserverへssh接続できたということになるのですが、毎回sshコマンドに秘密鍵やら接続先やらを打ち込むのはめんどくさいです。なので、コマンド入力を省略するためにconfigファイルを~/.sshディレクトリに配置します。configファイルの内容は以下です。接続先やポート番号の設定、Userや鍵ファイルの場所などをします。ServerAliveIntervalは60秒ごとにXserverと通信するという設定で、ssh通信が途切れてしまうことを防ぎます。xsrvとはこの接続設定の名前です。
Host xsrv
HostName {自分のサーバーID}.xsrv.jp
Port 10022
User {自分のサーバーID}
IdentityFile ~/.ssh/id_xserver_rsa
ServerAliveInterval 60
以下のようにsshコマンドに接続設定を指定することでを入力を省略できます(パスフレーズの入力は必要)。めでたしめでたし。
$ ssh xsrv
余談
なお、本記事のトップ画像はChatGPTさんに書いてもらいました。「SSHでXserverにアクセスする方法」という文字列を含んだ、CUIの画面を操作する女の子の画像をください。ワイドでお願いします。」というプロンプトです。かわいい女の子がCUIを操作しているんですが、酒瓶があり、なんか、不穏です。
“Xserverにsshでアクセスするための設定(Mac版)” に対して1件のコメントがあります。