SSH接続って何?

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




トモエ
SSH接続ってなに?
必要なの?















エナリ
必要ないかな…
SSH接続とは、パソコンなどのコンピュータ機器から遠隔でサーバー機器にログインして、コマンドを実行して、ディスクの中身を見たりファイルを作ったり、その他さまざまな処理をする手段の一つだよ。
便利なんだけど、WordPressでWebページを公開しているだけなら、全く必要が無い機能なんだよ。




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















エナリ
…
必要な人は必要だから、続けるよ!
SSHは、SSH接続されるのを待っているSSHサーバーに、コンピューターなどのSSHクライアントから接続要求を出すんだ。だから、サーバー側で接続を許可していないとSSHを使用できないよ。
レンタルサーバーはSSH接続を許可していないことが多いけど、XServerは許可しているから使用できるんだ。
SSH接続は、「パスワード認証方式」と「公開鍵認証方式」の二つうち、どちらかを利用してユーザー認証を行うよ。
「パスワード認証方式」はパスワードを知っていれば接続できる方式だね。
「公開鍵認証方式」はサーバー側に「公開鍵」を設置して、クライアント側に「秘密鍵」を設置しておくんだ。そして鍵と鍵がお互いにペアになっているかを確認することで、認証する方式だよ。少しわかりにくいんだけど、公開鍵認証方式にもパスワードに似たパスフレーズを設定できるよ。パスフレーズを忘れると、認証できないんだ。
XServerは公開鍵認証方式のみ対応しているよ。だから、公開鍵と秘密鍵を作ったりしないといけないんだ。これは、XServer上で作成できるよ。
このページでは、鍵の作成とコンピュータ側での設定方法、XServerと実際にSSH接続する方法をお伝えするね。
SSH接続に必要な情報を取得する















エナリ
SSH接続するには、接続先の情報が必要だよ
次の手順で、XServerとの接続情報を取得してね。






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















エナリ
XServerのSSH接続を有効化するよ
XServerのSSH接続は初期状態だと無効になっているから、有効にする必要があるんだ。
有効にしたら、秘密鍵をパソコンダウンロードするよ。
次の手順でSSH接続を有効にして、秘密鍵をダウンロードしてね。




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


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


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


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


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


パスフレーズは次の条件で決めてね
- 6文字以上、32文字以内で入力
- 使用可能文字: 半角英数スペース.,-_#@?!/+=$%
画像のパスフレーズはブラウザが自動生成したんだけど、条件に合っていないんだ。条件に合うように手直しするか、自分で考える必要があるね。
※入力欄の右側にある目のアイコンをクリックすると、入力した文字が表示されるから活用してね


ボタンをクリックすると、公開鍵がXServer内に設置されて、秘密鍵のダウンロードが始まるよ。
ダウンロードが始まったら、パソコン内に保存してね。




トモエ
パスワード忘れそう…















エナリ
パスワードを忘れたら接続できないから、メモしてね
パソコン側の準備















エナリ
パソコン側はSSHクライアントソフト(アプリ)が必要だよ
XServerとSSH接続するときは、パソコン側にSSHクライアントソフト(アプリ)が必要だよ。
XServerが作成する秘密鍵はOpenSSH形式という形式で作成されているよ。だから、OpenSSH形式に対応したSSHクライアントが必要なんだ。
Macは何もしなくても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は少し面倒だよ。


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




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


『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接続がオフになっているときに接続しようとするとパスフレーズの入力を要求されるよ。でも、接続されないで閉じてしまうんだ。
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接続できるので、チャレンジしてみてください。