普段はサーバー側のセッティングをやらないのですが、今回Pythonをxserverで動かすための前提となるxserverへのssh接続を試みたので、作業ログを残すために記載します。ネット情報は新旧情報が入り交じっていいますので、このメモは2024年8月現在となります。
とても参考にさせていただいたブログは以下の通りです
SSHの有効化と公開鍵の作成
xserverにログインしてサーバーパネルの「SSH設定」からSSHを有効にする。以下では「国内からのアクセスのみを許可」に設定しています。
続いて、「公開鍵認証用鍵ペアの生成」で、パスフレーズを入れて作成します。パスフレーズはSSH接続時に必要となるので保管してください。
そうすると、「秘密鍵」が自動的にダウンロードされてきますのでわかりやすい場所に保存します。(この後保管場所を動かします)秘密鍵のファイル名は[サーバーID].keyになっています。
SSH接続
それでは、SSHでxserverに接続を試みます
まずは、SSH接続に必要なターミナルをどれにするかですが、ここではMACの標準ターミナルではなく、私が使い慣れた「iTerm2」を使う場合を説明します。
sshディレクトリーの作成
まずはSSHのファイルを保管しておくディレクトリーを確認します。
iTerm2を立ち上げます。
すでに作成されているかどうかまずは以下のコマンドをiTerm2に入力します。
% ls ~/.ssh
ここで、[No such file or directory」が出る場合はまだこのディレクトリーが作成されていないので以下のコマンドで作成します
% mkdir ~/.ssh
秘密鍵を所定の場所に移動します
先ほど作った「~/.ssh」ホルダーにダウンロードした秘密鍵を移動します。
まず、移動元となるダウンロードした[サーバーID].keyのファイルパスをコピーします。
念のため、ファイルのパスは以下の方法で取得できます。MACのファイルのファインダーから当該ファイルを右クリックして、[option]キーを押すと「スクリーンショット XXXXへのパス名をコピー」が出るのでそのパス名をコピーできます。
上記でコピーした「[サーバーID].key」ファイルへのパスを使って、以下のコマンドで「~/.ssh」フォルダーにid_rsa_xsererという名称で移動します。「id_rsa_xserver」は他の名前でのOKですが、その場合はこれ以降同じ名称を利用してください。
% mv [ここにサーバーID.keyへのファイルパス名] ~/.ssh/id_rsa_xserver
上記で移動したファイルのパーミッションを変更します
% chmod 700 ~/.ssh
% chmod 600 ~/.ssh/id_rsa_xserver
なおchmod 700は700に変更するのではなく、7 0 0と三つの意味があり「所有者」「グループ」「その他」のそれぞれの権限レベルを表しています。700は所有者にのみ、読み、書き、実行の権限を与えることを意味しています。こうすることで所有者以外が読み書きすることを防ぎます。
xserverへの接続
これで準備ができたのでxserverに接続してみます。
接続には以下のコマンドで接続します。[ホスト名]は「svXXXX.xserver.jp」で自分のXXXX番号を使えばOKです。
% ssh -l [サーバーID] -p 10022 -i ~/.ssh/id_rsa_xserver [ホスト名]
うまく接続すると続けるか[yes/no]を聞いてきますので「yes」をタイプします。
xserverに接続できるとiTerm2のプロンプトが以下の様に変わります。
[サーバーID@サーバー番号 ~]$
うまくいきました。一旦サーバーから退出します。コマンドは「exit」です。
次回以降のログイン方法
とりあえず接続に成功したので次回以降は次のようにすればログイン可能です。
% ssh サーバーID@svXXXX.xserver.jp -i ~/.ssh/id_rsa_xserver -p 10022
この後以下の様な感じでパスフレーズの入力を促されますので、最初に作成したパスフレーズを入力すればxserverに再度接続されます。
Enter passphrase for key '.ssh/id_rsa_xserver':
コマンドを入力をショートカットで入力する方法
上記のように接続のたびにコマンドとパスフレーズを入力するのは手間なので、iTerm2の機能で自動入力をセットします。以下のブログを参考にしました。
iTerm2の最新バージョンで上記のブログとは異なる点を中心に記載します。
Profilesの設定
[Profiles]はメニュー画面から[Open Profiles…]で選択します。
「Profiles」画面の右下の「Edit Profiles…」をクリック
「Settings」画面で左下の+ボタンをクリックして新たなProfileを作成する。
Name: わかりやすい名前を登録
Shortcut key: 好きなものを選択
Badge: Nameと同じでOK
Command: 「Command」をプルダウンから選択してログインコマンドを登録
「ssh サーバーID@svXXXX.xserver.jp -i ~/.ssh/id_rsa_xserver -p 10022」
以上で画面を閉じればOKです。
パスワードマネージャーのセット
ただし、この段階では、パスフレーズを毎回聞かれて不便ですので、パスフレーズも自動で入力できる用に設定します。
パスフレーズを自動で入力するにはパスワードマネージャーに登録します。パスワードマネージャーは、[command]+[option]+[F]、もしくは、メニューから「Window」->「Password Manager」を選択します。
パスワードマネージャー画面の左下の+ボタンをおすとセッティング画面が現れますので以下をセットします。
Account: わかりやすい名前、User name:空欄でOK, Password:パスフレーズ
以上でセッティングは終了です。
以降はxserverへのsshログインが容易になります
xserverにsshログインするときは
Step1:iTerm2を開く
Step2:メニューの「Profiles」をおすと、上記で登録したプロファイルNameがあるのでそれを選択
Step3:アカウントマネージャーが自動で開くので、先ほど選択したAccount Nameを選択して「Enter Password」を押せばxserverにつながります。
めでたし👏