WindowsとMacからSSHコマンドを使ってXserverへ接続する方法を説明します
はじめに、Xserverの設定
ここではSSHコマンドを使った接続方法を説明します。
XserverでSSHコマンドが使えるように設定します。
サーバー管理画面にログインして、アカウント項目にあるSSH設定をクリックします。
すると、SSH設定画面が表示されるので、ONにして使用できるようにします。
ここでページに表示されているポート番号をメモしておきましょう。
XserverではSSHの接続で使うポート番号が10022となります。
次に「公開鍵認証用鍵ペアの生成」タブをクリックします。
表示されるパスフレーズ入力欄にSSHコマンドを実行するときに使用するパスワードを入力します。
入力したら確認画面入力を進むボタンを押してkey(鍵)ファイルを生成しダウンロードします。
ダウンロードされるファイルは「~.key」となります。
もしパスワードを忘れてしまったときは再度この公開鍵認証用鍵ペアを生成します。
生成したときには前回生成したものが無効になります。
新しくダンロードするkeyファイルを使うことになるので、古いkeyファイルは削除しましょう。
これでXserver側の作業は終わりです。
SSHコマンドを使う
Windows10は最新ですと(2022/5時点)SSHコマンドが使用できるようになっていると思います。
SSHコマンドが使えるようになっているかどうかを確認しましょう。
PowerShellを起動して次のコマンドを入力します。
PS C:\Users\user> ssh -V
もしすでにSSHコマンドがインストールされているときは以下のように表示されます。
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
SSHがインストールされていない場合は次の方法でインストールします。
[設定]-[アプリ]-[アプリと機能]-[オプション機能]に画面を進めます。
表示される画面の「機能の追加」をクリックします。
表示される入力欄にOpenSSHと入力して下に表示される「OpenSSHクライアント」をインストールします。
これでWindowsでSSHコマンドが使えるようになります。
もう一度PowerShellを起動して次のコマンドを入力します。
PS C:\Users\user> ssh -V
以下のように表示されれば使えるようになっています。
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
macOSはSSHコマンドは最初から使えるようになっています。
念のため確認しておきましょう。
$ ssh -V
以下のように表示されます。
OpenSSH_8.6p1, LibreSSL 3.3.5
では次にコマンドを使えるようにしていきます。
SSHコマンドの使い方はWindowsでもMacでも同じです。
まずはホームフォルダ配下に「.ssh」フォルダを作成します。
Windowsの場合
PS C:\Users\user> mkdir .ssh
macOSの場合
Pcname:~ user$ mkdir .ssh
そして作成した「.ssh」フォルダへXserverからダウンロードした「~.key」ファイルをコピーします。
これでSSHコマンドでXserverへ接続できるようになりました。
以下のようなコマンドを入力して接続できます。
$ ssh -l <user name> <host name> -p <port number> -i <key file>
これを毎回入力するのは少し面倒です。
なので「config」という名前で以下の内容のファイルを「.ssh」フォルダ配下に作成します。
【configの内容】
Host <任意の名前>
HostName <host name>
User <user name>
Port <port number>
IdentityFile <key file>
TCPKeepAlive yes
RemoteCommand cd <接続したとき移動したディレクトリ>; $SHELL -il
RequestTTY yes
この中で追加した項目を説明すると
「TCPKeepAlive yes」は接続を維持する設定
「RemoteCommand」接続したときに自動で実行するコマンド
「RequestTTY yes」自動でコマンドを実行したあとに正しく出力する(コマンドの実行結果をコンソールに反映させる)
となります
この設定ではRemoteCommandにディレクトリを移動するコマンドを実行して、作業したいディレクトリへ接続したときに自動で移動します。
例えば、「cd /home/user/hoge.com/pubic_html; $SHELL -il」と設定しておくと指定したドメインのWebルートへ接続時に移動します。
configファイルを作成したら、次のようにコマンドを実行すると接続できます。
$ ssh <任意の名前>
初めて接続したときは、以下のようなメッセージが出力されるので「yes」と入力します。
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
そして、公開鍵認証用鍵ペア生成時に設定したパスフレーズを求めてくるので
Enter passphrase for key '/Users/user/.ssh/~.key':
パスフレーズを入力するとXserverへSSH接続できます。
[user@svxxxx public_html]$
作業が終わったらexitでログアウトすることを忘れないようにしましょう。