【初心者・入門】XserverにSSH接続する。クライアントソフトの接続も。

#XserverにSSH接続する
私は初心者プログラマーなので、丁寧に解説したサイトが見つからず苦労したので、同類の方の為に残しておきます。

##話の流れ
1)xserver側のSSH設定
2)PC側のクライアントソフトのSSH設定

##はじめに
####SSHとは
ネットワークを介してサーバー（今回はxserverを指します）にログイン・コマンドラインでの操作を行うためのものです。
コマンドラインでのサーバー上での操作が可能になるので、サーバー上でのファイル操作（コピーや削除など）や、
設定ファイルのテキスト編集が可能になります。
また、SSHでの接続では、根とワーク上を流れるデータはパスワード等を含め全てのデータが暗号化されるため安全に操作を行えます。


####xserverとは
Webサイトの公開やメールアドレスの運用にはサーバーが必要になります。
それを安全に安定的に運用できるように開発されたサーバーを定額でレンタルして使用するレンタルサーバーの一種です。
無料トライアル期間があるので、契約前のお試し使用や、短期間のサーバー使用を目的とした簡易利用としても人気があります。


##1)xserver側のSSH設定
※今回の話では、xserverでのアカウントが既に作成済みの体で進めていきます。

####xserverにログイン
xserverのサイトにアクセスし、サーバーパネル（サーバー管理用のログイン画面）をクリックします。
サーバーID・パスワードを入力してログインします。
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206858/db62b77b-aa96-c278-472f-afd5f6acb71a.png)

####xserverのSSH設定を有効化
サーバーパネルへログイン後、「アカウント」の「SSH設定」メニューをクリックします。
![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206858/127db878-94d5-f480-0fb1-9ca5d6789172.png)
「SSH設定」メニュー画面の「SSHタブ」を選択し、デフォルトでは状態がOFFになっているので、変更で「ONにする」を選択し、「設定する」ボタンをクリックします。
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206858/ab0fc15c-a183-e7d8-0f7b-942c1e7132b2.png)
これでSSH設定が有効になりました。
![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206858/b4e187b8-f892-384f-f8fd-0c35df066be2.png)

####公開鍵認証用鍵ペアの生成
先程の「SSH設定メニュー」内の、「SSH設定」タブの隣にある「公開鍵認証用鍵ペアの生成」タブをクリックします。
ここでは「パスフレーズ」というパスワードのようなものを設定しますが、これは後ほどクライアントソフトのSSH設定で使用するので、忘れないように管理しておきます。
![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206858/d951701b-9acf-497f-e68c-bad120557dc2.png)
任意の文字列でパスフレーズを入力し、「確認画面へ進む」ボタンをクリックし、問題がなければそのまま「生成する」ボタンをクリックします。
![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206858/6bf1bddf-fc21-7d1c-ba07-62e193612beb.png)
このパスフレーズの登録はこの後何度でも行え、連続して同じパスフレーズでも登録は可能です。但し、登録を行うとそれまでに登録したパスフレーズは使用不可となるので注意が必要です。
パスフレーズの生成が完了すると、「~.key」という秘密鍵のダウンロードが自動で始まります。
ダウンロードした秘密鍵も後ほどクライアントソフトのSSH設定で使用する為、管理しておきます。
![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206858/75f3211c-185e-fd0e-2cbc-69f84f1a134b.png)

##2)PC側のクライアントソフトのSSH設定
###Windowsの場合
Windowsでは「[TeraTerm](https://ja.osdn.net/projects/ttssh2/releases/"TeraTerm install")」というソフトを使用していきます。
[TeraTermとは(https://weblion303.net/566"TeraTermとは")]
####ホストとTCPポートを入力
TeraTermを起動しすると「新しい接続」というウィンドウが開きます。ここでホストとTCPポートを入力します。
![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206858/8de16aa3-b78e-147a-41c2-cdf0eb4e577f.png)
#####ホスト
「sv〇〇〇〇.xserver.jp」といった形で入力します。
〇〇〇〇にはサーバー番号が入ります。サーバー番号はxserverのサーバーパネルのサーバー情報画面で確認できます。
#####TCPポート
xserver専用ポート「10022」を使用します。ウィンドウを開いた際は、デフォルトのポート番号「22」が入っています。
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206858/02e48a9f-cf42-d3b7-6643-6e594a2f7b42.png)
入力が終わったら「OK」をクリックします。

####セキュリティ警告
「OK」をクリックすると警告ウィンドウが表示されますが、構わず「続行」をクリックします。

####ユーザ情報の入力・秘密鍵の選択
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206858/8e6dbd40-034c-df9c-03f7-19cec7fc331e.png)
#####ユーザ名
xserverのサーバーIDを入力します。
サーバーIDはxserverにログインする際の情報と同じです。xserverのサーバーパネルのアカウントデータにも記載されています。
#####パスフレーズ
xserverのSSH設定で設定したパスフレーズを入力します。
#####秘密鍵
xserverのSSH設定で公開鍵認証用鍵ペアの生成をした際にダウンロードした「~.key」ファイルを選択します。
表示を「すべてのファイル」に切り替えると画面上に表示されるようになります。

情報を入力し終わったら「OK」をクリックします。

####サーバーの接続確認
エラーがなく正常に動作すると、SSHを通してサーバーに接続することができます。
もしエラーが出た場合は、サーバーIDなど入力した箇所のどれかが誤っている、もしくは秘密鍵のファイルが間違っている可能性があります。見直してみましょう。ファイアウォールなどPCの設定によるエラーで進めないケースはここでは恐らくなさそうです。

###Macの場合
macではTeraTermのインストールは不要で、Terminalを使用します。

####秘密鍵ファイルの保存とパーミッションの変更
Terminalを開き、xserverのSSH設定でダウンロードした「~.key」ファイルのある場所にコマンドで移動します（ダウンロードファイルに格納されている場合は以下のコマンドになります）。
```$ cd /Users/[ユーザー名]/Downloads
```

次に、コマンドで秘密鍵ファイルを保存するフォルダを作成し、鍵ファイルを移動・リネーム（フォルダの名称変更）を行います。
秘密鍵ファイルの名前はそれぞれ違うので、hoge部分を適宜変更してください。
```$ mkdir ~/.ssh
$ mv hoge.key ~/.ssh/id_rsa
```

そして、パーミッションを変更します。
```$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa
```

####TerminalでSSH接続
さて、TerminalでSSH接続を行っていきます。
```$ ssh -l [サーバーID] -p 10022 [サーバーID].xsrv.jp
```

サーバーIDはxserverにログインする際の情報と同じです。xserverのサーバーパネルのアカウントデータにも記載されています。
上記のコマンドを実行すると、「Are you sure you want to continue connecting (yes/no)?」と表示されます。ここでは「yes」と入力してエンターキーを押します。
次に、パスフレーズの入力を求められますので、xserverで公開鍵認証用鍵ペアの生成をしたときに設定したものを入力します。
正常にSSH接続が完了すると、Terminalの先頭部分が変化します。確認できましたらexitで終了します。
```$ exit
```

更に、Terminalからはconfigファイルを使用してログイン・パスフレーズの入力を簡略化できる技などもあります。[こちら](https://decoy284.net/xserver-ssh/"Terminalで簡略ログイン")