【さくらVPS CENTOS7】TERATERM で公開鍵/秘密鍵によるSSH接続を設定し WINSCPで権限を強めたSFTP接続を10分で実装する事で、サーバーへのログインを”安全”に、強い権限によりファイル操作を”簡単に”閲覧する方法

#０前準備
teratermで最初にIDとパスワードを入力してサーバにログインしてください。

#１TERATERM上でSSH鍵生成します。
「設定」をクリック後、「SSH鍵生成」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140071/0fc3bd18-36df-d1cb-9cac-d5d730bab2c1.png)

#２鍵の種類を設定します。
「鍵の種類」選択後、「生成」をクリックします。※ここでは、「RSA」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140071/06d3d3ec-9148-bc38-6734-48536b5f254c.png)

#３鍵のパスフレーズを入力します。
「鍵を生成しました。」と表示後、「鍵のパスフレーズ」「パスフレーズの確認」を入力します。
※このパスフレーズは、ログイン時に利用します。このパスフレーズがないと楽ではありますがセキュリティ上よろしくないのでパスフレーズは必ず設定しましょう。その代わりWINSCPのページェントを利用する事で毎回パス入力をしないよう設定します。後述に記述しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140071/986a4694-6e11-9f8a-61e3-33b1b8c79f58.png)

#４「公開鍵の保存」「秘密鍵の保存」をそれぞれクリックしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140071/4430f6f2-670e-bccf-6106-588c108a9e75.png)

「公開鍵の保存」「秘密鍵の保存」をそれぞれクリック後、事前に作成した鍵を格納するフォルダに保存します。※以下の名前で保存されます

| 公開鍵 　　　     |       秘密鍵 | 
|:-----------------|------------------:|
| id_rsa.pub          |              id_rsa |


保存が完了後、TeraTermの画面は一度閉じます。

#５普通に再度ログインします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140071/a93383a1-b1da-f14c-6be5-1e353a747e4e.png)

#６「公開鍵」のファイルをドラック&ドロップします。

サーバにログイン完了後、事前に作成した「公開鍵」のファイルをドラック&ドロップします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140071/20dec678-8c06-2d7c-f54f-407ddd803ebf.png)

#７SCPで転送

何もしないでエンターでOKです。
「ファイル転送を行いますか？」と表示後、「SCP」をクリックします。
※「SCP」クリックすると、ユーザのホームディレクトリに転送されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140071/2909108f-f570-385f-13b9-f7e3c8a3c488.png)


#８公開鍵認証の設定

ユーザのホームディレクトりに移動後、公開鍵認証の設定を行います。

```
$ mkdir .ssh
$ chmod 700 .ssh
$ cat id_rsa.pub > .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
$ rm -f id_rsa.pub
```

#９rootでSSH接続の設定変更

AuthLoginをオフってる人はさくらであればコンソールでもOKです。
「@」より前が「root」に切り替われば、「root」に変更されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140071/72e07bd3-b3e1-3ae4-6e5b-84295130be60.png)

#１０　SSH接続の設定を変更します。

```
# nano /etc/ssh/sshd_config
```

#１１　３か所を編集します。

```
ポート番号を変更しましょう。

#Port 22
→Port ****

ルートログインをNGに

#PermitRootLogin yes
→PermitRootLogin no

パスワード承認をNGに

PasswordAuthentication yes
→PasswordAuthentication no
```

#１２　SSH接続の変更内容を読込みます。

```
systemctl restart sshd.service
```

#１３　TERATERMのショートカットを開いてリンク赤字部分を設定する

![名称未設定-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140071/1d95819e-56bf-a20b-1aab-4ee4a40099cd.png)

例えば以下のような設定だったとするとリンク赤字部分は以下です。

IP　1.1.1.1
ポート　12345
ユーザー名　hoge
パスワード　naga
キーファイル　is_rsaの場所をディレクトリで指定する　最後はid_rsa

"C:\Program Files (x86)\teraterm\ttermpro.exe" 1.1.1.1:12345 /auth=publickey /user=hoge /passwd=naga /keyfile="C:\Users\hoge\hoge\hoge\id_rsa"

#１４　ログインします。

#１５　続いてWINSCPの設定を行います
以下を参考に設定してください。

![0001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140071/22d80439-027b-153e-3464-aacced4d041f.png)

ポイントはSSHの公開鍵を設定した時は、以下のようにSSHから認証を選択し秘密鍵にディレクトリを入れてください。rsa.ppkというファイルは自動で変換してくれます。※丁寧にメッセージが出ます！

![0002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140071/ed4d9bc5-c553-37b9-ac75-15f4f4904fec.png)

#１６　WINSCPで秘密鍵で正常にログインできる事を確認します。

WINSCPで正常にログインする事ができました。しかし現在の状況ですと権限が弱く自分のディレクトリ配下以外は閲覧やコピーができません。具体的に自分がhogeAだったとしましょう。その場合、権限がありませんのでhogeBにはアクセスできません。
home
－－hogeA
－－hogeB
－－hogeC

そこで無理やりこじあけましょう。

#１７　続いてTERATERMでサーバーにログインして以下コマンドを打ちます。最下部に以下コマンドを書きましょう。
※WinSCPで使用するユーザーを「hogehoge」とした場合、以下のようになります。接続先サーバーはCentOS7想定です。

```
visudo

hogehoge ALL=NOPASSWD: /usr/libexec/openssh/sftp-server
```

#１８　WinSCPのSFTPサーバー設定を入力します。

赤字の部分をコピーペーストしてください。

```
sudo /usr/libexec/openssh/sftp-server
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140071/40c3ea53-2d71-6186-ba60-52e2cac98b64.png)

#１９　ファイル権限が強くなっているか確認します。

home
　hogeA
　hogeB
　hogeC

どれでも閲覧できますね。以上です。