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


0前準備

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

1TERATERM上でSSH鍵生成します。

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

2鍵の種類を設定します。

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

3鍵のパスフレーズを入力します。

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

4「公開鍵の保存」「秘密鍵の保存」をそれぞれクリックしてください。

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

公開鍵     秘密鍵
id_rsa.pub id_rsa

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

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

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

サーバにログイン完了後、事前に作成した「公開鍵」のファイルをドラック&ドロップします

7SCPで転送

何もしないでエンターでOKです。
「ファイル転送を行いますか?」と表示後、「SCP」をクリックします。
※「SCP」クリックすると、ユーザのホームディレクトリに転送されます。

8公開鍵認証の設定

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

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

9rootでSSH接続の設定変更

AuthLoginをオフってる人はさくらであればコンソールでもOKです。
「@」より前が「root」に切り替われば、「root」に変更されています。

10 SSH接続の設定を変更します。

# nano /etc/ssh/sshd_config

11 3か所を編集します。

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

#Port 22
→Port ****

ルートログインをNGに

#PermitRootLogin yes
→PermitRootLogin no

パスワード承認をNGに

PasswordAuthentication yes
→PasswordAuthentication no

12 SSH接続の変更内容を読込みます。

systemctl restart sshd.service

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

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

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"

14 ログインします。

15 続いてWINSCPの設定を行います

以下を参考に設定してください。

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

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

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

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

17 続いてTERATERMでサーバーにログインして以下コマンドを打ちます。最下部に以下コマンドを書きましょう。

※WinSCPで使用するユーザーを「hogehoge」とした場合、以下のようになります。接続先サーバーはCentOS7想定です。

visudo

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

18 WinSCPのSFTPサーバー設定を入力します。

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

sudo /usr/libexec/openssh/sftp-server

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

home
 hogeA
 hogeB
 hogeC

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