SSH接続って何?

エナリ

今日はXServerにSSH接続する方法を紹介するよ!

トモエ

SSH接続ってなに?
必要なの?

エナリ

必要ないかな…

SSH接続とは、パソコンなどのコンピュータ機器から遠隔でサーバー機器にログインして、コマンドを実行して、ディスクの中身を見たりファイルを作ったり、その他さまざまな処理をする手段の一つだよ。

便利なんだけど、WordPressでWebページを公開しているだけなら、全く必要が無い機能なんだよ。

トモエ

必要ないなら、このページは終了でいいんじゃない?

エナリ

必要な人は必要だから、続けるよ!

SSHは、SSH接続されるのを待っているSSHサーバーに、コンピューターなどのSSHクライアントから接続要求を出すんだ。だから、サーバー側で接続を許可していないとSSHを使用できないよ。

レンタルサーバーはSSH接続を許可していないことが多いけど、XServerは許可しているから使用できるんだ。

SSH接続は、「パスワード認証方式」と「公開鍵認証方式」の二つうち、どちらかを利用してユーザー認証を行うよ。

「パスワード認証方式」はパスワードを知っていれば接続できる方式だね。

「公開鍵認証方式」はサーバー側に「公開鍵」を設置して、クライアント側に「秘密鍵」を設置しておくんだ。そして鍵と鍵がお互いにペアになっているかを確認することで、認証する方式だよ。少しわかりにくいんだけど、公開鍵認証方式にもパスワードに似たパスフレーズを設定できるよ。パスフレーズを忘れると、認証できないんだ。

XServerは公開鍵認証方式のみ対応しているよ。だから、公開鍵と秘密鍵を作ったりしないといけないんだ。これは、XServer上で作成できるよ。

このページでは、鍵の作成とコンピュータ側での設定方法、XServerと実際にSSH接続する方法をお伝えするね。

SSH接続に必要な情報を取得する

エナリ

SSH接続するには、接続先の情報が必要だよ

次の手順で、XServerとの接続情報を取得してね。

STEP1
XServerのサーバーパネルにログインする
STEP2
メニュー:『サーバー』⇒『SSH設定』をクリックしてSSH設定画面を表示する
SSH設定メニュー
STEP3
『SSHソフト設定』タブをクリックしてSSHアカウント情報を表示する
SSHソフト設定タブ
STEP4
SSHアカウント情報を確認する
SSHアカウント情報

必要な情報は、「サーバー(ホスト名)」、「ユーザー名」、「接続ポート」の三つだよ。これらの情報は、このページのconfigファイルの作成で使用するよ。

XServer側の設定

エナリ

XServerのSSH接続を有効化するよ

XServerのSSH接続は初期状態だと無効になっているから、有効にする必要があるんだ。

有効にしたら、秘密鍵をパソコンダウンロードするよ。

次の手順でSSH接続を有効にして、秘密鍵をダウンロードしてね。

STEP1
XServerのサーバーパネルにログインする
STEP2
メニュー:『サーバー』⇒『SSH設定』をクリックしてSSH設定画面を表示する
SSH設定メニュー
STEP3
『SSH設定』タブをクリックする
SSH設定タブ

最初から『SSH設定』タブが選択されているよ!

STEP4
『設定状況』内の『SSH設定』スイッチをオフからオンにする
SSH設定がオフの状態

設定をオンにすると『国外アクセス制限』スイッチが表示されるよ

STEP5
海外からSSH接続する場合は『国外アクセス制限』スイッチをオフにする
国外アクセス制限スイッチ

※日本で作業するときはオンがおススメだよ!

STEP6
『公開鍵の登録・更新』内の『自動生成による登録・更新』を選択状態にする
自動生成による登録・更新

自動生成による登録・更新』と『手動による登録・更新』の二択だよ。
手動による登録・更新』はとても面倒な設定方法だから、ここでは『自動生成による登録・更新』を選択してね

STEP7
『パスフレーズを設定する』を選択する
パスフレーズを設定する

パスフレーズはSSH接続するときのパスワードだよ。
パスワードなしでも接続できるけれど、セキュリティが緩くなるよ。

STEP8
パスフレーズを入力する
パスフレーズの入力

パスフレーズは次の条件で決めてね

  • 6文字以上、32文字以内で入力
  • 使用可能文字: 半角英数スペース.,-_#@?!/+=$%

画像のパスフレーズはブラウザが自動生成したんだけど、条件に合っていないんだ。条件に合うように手直しするか、自分で考える必要があるね。

※入力欄の右側にある目のアイコンをクリックすると、入力した文字が表示されるから活用してね

STEP9
登録して秘密鍵をダウンロードするをクリックする
登録して秘密鍵をダウンロードするボタン

ボタンをクリックすると、公開鍵がXServer内に設置されて、秘密鍵のダウンロードが始まるよ。

STEP10
パソコン内に秘密鍵ファイルを保存する

ダウンロードが始まったら、パソコン内に保存してね。

トモエ

パスワード忘れそう…

エナリ

パスワードを忘れたら接続できないから、メモしてね

パソコン側の準備

エナリ

パソコン側はSSHクライアントソフト(アプリ)が必要だよ

XServerとSSH接続するときは、パソコン側にSSHクライアントソフト(アプリ)が必要だよ。

XServerが作成する秘密鍵はOpenSSH形式という形式で作成されているよ。だから、OpenSSH形式に対応したSSHクライアントが必要なんだ。

Macは何もしなくてもOpenSSHクライアントが組み込まれているから、そのまま使えるよ。

WindowsもOpenSSHクライアントが組み込まれているんだけど無効になっている可能性があるんだ。
『設定』⇒『システム』⇒『オプション機能』⇒『追加された機能』で確認してね。

windows opensshクライアントの有効化確認

『追加された機能』にOpenSSHクライアントが表示されないときは、『機能の追加』で追加してね。

パソコン側の設定

OpenSSHクライアントでXServerと接続するときは、まずは.sshフォルダを作成して、その中にconfigファイルを作成する必要があるよ。

.sshディレクトリの作成

エナリ

まずは.sshフォルダを作成しよう!

Windowsの場合

Widnowsは環境変数%userprofile%内に、.sshディレクトリを作成するよ。

まずはコマンドプロンプトを起動してね。

起動したらcdコマンドで%userprofile%ディレクトリに移動するよ。

c:\User\enari>cd %userprofile%
c:\User\enari

デフォルトではユーザーディレクトリと%userprofile%ディレクトリは同じだよ。

移動したら、mkdirコマンドで.sshディレクトリを作成してね。

c:\User\enari>mkdir .ssh

ダウンロードした秘密鍵も、.sshディレクトリに移動しておくといいよ。

c:\User\enari>move 秘密鍵のパス .ssh

エナリ

入力が面倒ならエクスプローラーで作業してね!

Macの場合

Macは~/.sshフォルダにconfigファイルを保存するよ。

Macのターミナルを開いて、次のコマンドを実行してね。

% mkdir ~/.ssh
% chmod 700 ~/.ssh

次に秘密鍵を作成したフォルダに移動させてアクセス権限を変更するよ。

% mv 秘密鍵のパス ~/.ssh
% chmod 600 ~/.ssh/秘密鍵のファイル名

configファイルの作成

エナリ

.sshフォルダを作成したらconfigファイルを作成するよ

.sshフォルダ内に『config』とういう名前でファイルを作成してね。MacとWindowsともに拡張子無しだよ。

作成したら、次の内容をconfigファイルに記述して保存してね。

Host 設定名
    HostName サーバー名
    User ユーザー名
    Port ポート番号
    IdentityFile 秘密鍵のパス
項目内容
設定名ssh接続時に使用する名前
サーバー名SSH接続に必要な情報を取得するで取得したサーバー名
ユーザー名SSH接続に必要な情報を取得するで取得したユーザー名
ポート番号SSH接続に必要な情報を取得するで取得した接続ポート
秘密鍵のパス秘密鍵のフルパス

コマンドプロンプトやターミナルで入力するのは難しいから、メモ帳などを使ってね。

エナリ

私の環境だと、次のようになるよ

Host xserver
    HostName xs123456.xsrv.jp
    User xs123456
    Port 10022
    IdentityFile C:\Users\enari\.ssh\xs123456.key

Macはconfigファイルのアクセス権限を600に変更してね。

% chmod 600 ~/.ssh/config

アクセス権限の変更を忘れると接続できないよ。

XServerとSSH接続する

エナリ

configファイルを作成できたら、SSH接続してみよう!

コマンドプロンプトやターミナルで『ssh 設定名』を実行してね。

c:\User\enari>ssh xserver

ここで『Bad owner or permissions』エラーが出たらこちらを見てね。

初回は『Are you sure you want to continue connecting』というメッセージが表示されるよ。『接続を続行しますか?』という意味だからyesと入力してね。

Are you sure you want to continue connecting (yes/no/[fingerprint])?yes

ここで『UNPROTECTED PRIVATE KEY FILE!』エラーが出たらこちらを見てね。

Enter passphrase for key』はパスフレーズ入力を求められているよ。パスフレーズを入力してね。

Enter passphrase for key 'C:\Users\enari\.ssh\xs123456.key':

入力した文字は表示されないけど、入力されているから心配しないでね。

パスフレーズを間違えると、次のようなメッセージが表示されて、接続に失敗するよ。

Connection closed by 12.345.678.90 port 10022

もしパスフレーズを忘れたら、XServerのサーバーパネルで秘密鍵を作り直して、ダウンロードしてね。

パスフレーズが一致するとSSH接続が確立して、次のようにサーバープロンプトが表示されるよ。

[xs123456@sv12345 ~]$

lsコマンドを実行してみてね。

[xs123456@sv12345 ~]$ ls
kamosige-works.com  ssl  xs123456.xsrv.jp

ディレクトリの内容が表示されるよ。

XServerとSSH接続を終了する

SSH接続を終了するときは、exitコマンドを使用するよ。

[xs123456@sv12345 ~]$ exit
ログアウト
Connection to xs123456.xsrv.jp closed.

exitしないでコマンドプロンプトやターミナルを閉じても大きな問題にはならないけど、正常終了と判断されないから、忘れなかったらexitしてね。

SSHの接続エラーの対処法

エナリ

SSH接続でよくあるエラーの対象方法を紹介するよ

『UNPROTECTED PRIVATE KEY FILE!』エラー

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'C:\Users\enari\.ssh\xs123456.key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "C:\Users\enari\.ssh\xs123456.key": bad permissions
xs123456@xs123456.xsrv.jp: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

『UNPROTECTED PRIVATE KEY FILE!』エラーは、秘密鍵が他のユーザーから参照できる状態になっているときに表示されるよ。

Macはアクセス権限を600に変更していない可能性が高いから、確認して設定してね。

% ls -l ~/.ssh/xs123456.key
-rw-rw---- 1 xxxx xxx 124 7 24 15:24 xs123456.key
% chmod 600 ~/.ssh/xs123456.key
% ls -l ~/.ssh/config
-rw------- 1 xxxx xxx 124 7 24 15:24 xs123456.key

Windowsは少し面倒だよ。

STEP1
エクスプローラーで秘密鍵のプロパティを開いてセキュリティタブを表示する
秘密鍵のプロパティ(windows)

SYSTEM、Administrators、現在のユーザーの三つ以外が表示されていたら、そのユーザーを削除する必要があるよ。

STEP2
詳細設定(V)ボタンを押してセキュリティの詳細設定画面を表示する
ファイルセキュリティの詳細設定
STEP3
継承の無効化(I)ボタンを押して継承のブロック画面を表示する
継承のブロック設定画面
STEP4
『継承されたアクセス許可をこのオブジェクトの明示的なアクセス許可に変換します』を押す

これで、ファイルを参照できるユーザーの削除が可能になるよ。

STEP5
セキュリティの詳細設定画面で削除するユーザーを選択して削除(R)を押す
ユーザーの削除
STEP6
OKを押して画面を閉じる

『Bad owner or permissions』エラー

Bad owner or permissions on C:\\Users\\enari/.ssh/config

Bad owner or permissionsエラーは、configファイルが他ユーザーから参照できる状態になっているときに表示されるよ。

configファイルに対して『UNPROTECTED PRIVATE KEY FILE!』エラーで解説した手順を実行してね。

長期間使用しなときはSSHをオフにしよう

エナリ

SSHは使う時だけオンにしてね

SSH接続に成功するとサーバー内を自由に参照できるよ。だから、もし悪意のある第三者がSSH接続したら、Webサイトが改ざんされてしまうかもしれないんだ。

公開鍵方式でパスフレーズが登録されているなら、第三者にSSH接続されることはほとんど無いけれど、可能性はゼロじゃないよね。

だから、SSH接続は使用するときだけオンにしてね。

特に長期間使用しない時は、必ずオフにしておくことをおススメするよ。

サーバーパネル:『サーバー』⇒『SSH設定』⇒『SSH設定』タブ⇒『設定状況』で『SSH設定』をオフにしてね。

SSH設定がオフの状態

SSH接続がオフになっているときに接続しようとするとパスフレーズの入力を要求されるよ。でも、接続されないで閉じてしまうんだ。

C:\Users\enari>ssh xserver
Enter passphrase for key 'C:\Users\enari\.ssh\xs123456.key':
Connection closed by 12.345.678.90 port 10022

パスフレーズが合っているのに接続できないときはXServer側でオンになっていない可能性があるから確認してね。

まとめ

このページではXServerにSSH接続して、サーバー上でコマンドを実行する方法をお伝えしました。

SSH接続を行うにはXServerで秘密鍵を作成してパソコンにダウンロードします。その後、パソコン側でconfigファイルを作成します。

一度設定すれば何度でもSSH接続できるので、チャレンジしてみてください。