WindowsのPCとエックスサーバーをSSH接続する方法

プログラミング

エックスサーバー内でコマンドを使用している人の中には、

FTPソフトでいちいちログインするの面倒だなぁ…

と思っている人もいるでしょう。

であれば、PCとエックスサーバーをSSH接続し、PCからエックスサーバー内をコマンドで操作できるようにしてしまえばいいのです。

しかも1度設定してしまえばずっとコマンド操作できます。

なお、この記事ではFTPソフトはWinSCPを使用します。WinSCPをインストールしていない方は、公式サイトからインストーラーをダウンロードできます。

エックスサーバーの管理画面上での操作

エックスサーバーにSSH接続するために、まずは管理画面での設定が必要です。

設定することは以下の通り。

  1. SSHの設定をONにする
  2. 公開鍵認証用の鍵ペアを生成する

SSHの設定をONにする

エックスサーバーの管理画面にログインしたら、「SSH設定」をクリックします。

 

次に、「ONにする」を選び、「設定する」をクリックします。

公開鍵認証用の鍵ペアを生成する

「公開鍵認証用鍵ペアの生成」のタブに切り替え、パスフレーズには何も入力せずに「確認画面へ進む」をクリックします。

 

※パスフレーズが入力されていません。」と警告が出ますが、ここでパスフレーズを設定してしまうと、SSH接続するたびにパスフレーズの入力を求められて面倒です。

セキュリティを重視する人や共用のPCを使っている人でなければ、設定する必要はないと思います。

「生成する」を押すと秘密鍵のファイルがダウンロードされます。

ダウンロードされたファイルの名前を「id_rsa_for_xserver.key」に変更しましょう。

これでエックスサーバーの管理画面上での操作は終了です。

 

WinSCPを使ってエックスサーバーにSSH接続

ローカルPCからサーバーにSSH接続の設定をする前に、先ほどダウンロードした秘密鍵ファイルを保存するディレクトリを作成しましょう。

秘密鍵ファイル保存用ディレクトリの作成

ユーザーフォルダの下に「.ssh」のフォルダを作成します。

コマンドプロンプトを開いて以下のコマンドを入力。

cd C:\Users\[User Name]\
mkdir .ssh

[User Name]は、自分のPCのユーザー名に変更してください。

すると、「C:\Users\[User Name]\.ssh」というディレクトリができているはずです。

このディレクトリ内に、先ほどダウンロードして名前を変えた「id_rsa_for_xserver.key」のファイルを移動させます。

SSH接続するために.ppkファイルを生成

次に、WinSCPを使って.ppkファイルを生成します。

WinSCPを開いて、「ツール」->「PuTTYgenを実行」を選択します。

 

「Load」をクリック。

 

ここで、先ほど保存した秘密鍵ファイルの「id_rsa_for_xserver.key」を選択します。

「開く」ボタンの上のところを『All Files(*.*)』にすると、 「id_rsa_for_xserver.key」 のファイルが出てきます。

そして、「開く」のボタンを押します。

 

OKで次に進みます。

 

「Save private key」をクリックします。

 

再度、パスフレーズが無い旨の警告が表示されますが、無視して「はい」を押します。

 

ファイルの保存場所を聞かれるので、先ほど作成した「C:\Users[User Name].ssh」のディレクト内に保存します。

ファイル名は「xserver_key.ppk」などとしておけばいいでしょう。

(参考元)Xserver(エックスサーバー)にWinSCPで接続手順・設定 | Windows10|tabalog

WinSCPを使ってSSH接続の確認

WinSCPのログイン画面に戻ります。

  • 転送プロトコル:SFTP
  • ホスト名:契約時のホスト名
  • ユーザー名:契約時のユーザー名
  • ポート番号:10022

パスワードは入力不要です。

ホスト名とユーザー名は、エックスサーバーを契約した時に送られてくる『【Xserver】■重要■サーバーアカウント設定完了のお知らせ』という件名のメールに記載されています。

もしくは、エックスサーバーの管理画面を見れば分かります。

  • ユーザー名は、「アカウントデータ」の下のサーバーID
  • ホスト名は、「アカウント」->「サーバー情報」

に記載されています。

 

次に、「設定」をクリックします。

 

左のメニューの「SSH」->「認証」をクリックし、先ほど生成した.ppkファイルを選択します。

「OK」を押します。

 

最後に「ログイン」を押せばSSH接続できます。

必要に応じてログイン情報を「保存」しておくと便利です。

 

コマンドプロンプトからSSH接続する設定

無事ログインできるのを確認したら、コマンドプロンプト(もしくはPowerShell)からSSH接続するための設定を行います。

コマンドプロンプトで以下のコマンドを入力して、「C:\Users[User Name].ssh」のディレクトリ内に「config」というファイルを作成します。

cd C:\Users\[User Name]\.ssh\
type nul > config

作成した「config」ファイルをテキストエディタで開き、以下のコードを追記。

Host xserver
 HostName sv[Your HostName].xserver.jp
  User [Your User Name]
  IdentityFile ~/.ssh/id_rsa_for_xserver.key
  Port 10022
  TCPKeepAlive yes
  RemoteCommand cd [Access Directory]; $SHELL -il
  RequestTTY yes

[Your HostName]、[Your User Name]、[Access Directory]は自分のものに変更してください。

『RemoteCommand cd [Access Directory]; $SHELL -il』は必要なければ削除してください。

なお、『RemoteCommand cd [Access Directory]; $SHELL -il』のコードで、SSH接続した時にデフォルトで開くディレクトリを指定できます。

例えば、WordPressのテーマのディレクトリを指定したければ、

RemoteCommand cd tenshoku-miti.com/public_html/wp-content/themes/cocoon-child-master; $SHELL -il

などのように指定します。

 

最後に、コマンドプロンプトで以下のコマンドを入力すればSSH接続できます。

ssh xserver

(補足)複数の接続先を指定する方法

先ほどの『RemoteCommand~』のコードを使えば、複数のディレクトリへの接続を使い分けることができます。
例えば、本番環境とステージング環境が同じサーバー内にあるときに、コマンドプロンプトからそれぞれのディレクトリにダイレクトに接続できます。

例えば、以下のコードを「config」ファイルに追記します。

Host xserver
 HostName sv[Your HostName].xserver.jp
  User [Your User Name]
  IdentityFile ~/.ssh/id_rsa_for_xserver.key
  Port 10022
  TCPKeepAlive yes
  RemoteCommand cd [Access Directory]; $SHELL -il
  RequestTTY yes

Host xserver-stg
 HostName sv[Your HostName].xserver.jp
  User [Your User Name]
  IdentityFile ~/.ssh/id_rsa_for_xserver.key
  Port 10022
  TCPKeepAlive yes
  RemoteCommand cd [STG Directory]; $SHELL -il
  RequestTTY yes

そしてコマンドプロンプトで、

ssh xserver

と入力すれば本番環境に、

ssh xserver-stg

と入力すればステージング環境に接続できます。

 

最後に|快適なSSH接続ライフを!

WindowsPCをエックスサーバーにSSH接続する方法からコマンドプロンプトでコマンド操作できるようにするところまでを紹介してきました。

僕はWordPressをGit管理するために、コマンドプロンプトからSSH接続できたほうが便利だよな~と思ってこの方法を実践し、記事にまとめました。

僕と同じようにWordPressをGit管理したい人は、やり方を別の記事にまとめたので、合わせてご覧ください。

タイトルとURLをコピーしました