SSH の公開鍵暗号方式設定
Windowsに SSH 秘密鍵、サーバーに SSH 公開鍵を作成し、鍵ペアによる認証でログインできるようにする。
1.ECDSA でキーペアを作成
# su – <user name>
$ ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/huong/.ssh/id_ecdsa):<Enter>を入力
Created directory ‘/home/huong/.ssh’.
Enter passphrase (empty for no passphrase): ← 任意のパスワードを入力します。
Enter same passphrase again: ← もう一度同じパスワードを入力します。
Your identification has been saved in /home/<user name>/.ssh/id_ecdsa.
Your public key has been saved in /home/<user name>/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:/C+8j0Ykpbqq80ABB/kkbwB8L76MUxmrkBvAsT6OVwg <user name>@fedora
The key’s randomart image is:
+—[ECDSA 256]—-+
oo=====++=|
| o ==.+*o+|
| ++E=.o+ |
| oo+++o .|
| S ..oo. |
| oo . |
| o o |
| + = |
| .+.o.o
+—-[SHA256]—–+
$ chmod 600 ~/.ssh/authorized_keys
2.秘密鍵ログイン設定
パスワード:
# vi /etc/ssh/sshd_config
■46行目あたり行頭の「#」を削除
変更前)
#PubkeyAuthentication yes
変更後)
PubkeyAuthentication yes
# systemctl restart sshd.service
秘密鍵をクライントPC にコピー(WinSCP使う) WinSCPの設定を行います
①WinSCPを起動し、「New Site」で次のように設定し、「Save」
Host name : サーバーのIPアドレス
Port number : SSHポート番号
User name : ユーザー名
Password : ユーザーのパスワード
接続名を任意の名前でつける ↓
下記の画面に戻りますので「Login」 ↓
下記の画面が出れば「Yes」 ↓
下記の画面では「Pasword」にユーザーのパスワードを入力する
下記の画面になりますので /home/<user name>/.ssh ディレクトリーにあるid_ecdsaをwindows側の任意の場所にコピーする(id_ecdsaを選択し、左側にドラッグ&コピー)
3.秘密鍵でのみログインするよう変更します
■66 行目あたり
「#PasswordAuthentication yes」の下に「PasswordAuthentication no」を追加
#PasswordAuthentication yes
PasswordAuthentication no
# systemctl restart sshd.service
3.PuTTYgen を使った秘密鍵の作成
該当サーバーを選択し、Winscpを起動しToolsからRun PuTTYgen を起動
Loadをクリック[ ファイルを開くダイアログ ] が開くのでファイルの種類を [ All Files (*.*) ] に変更して Linux サーバから転送した秘密鍵 id_ecdsa を読み込みます。
サーバー側で秘密鍵を作成したときに入力したパスフレーズを入力します
以下のように表示されると [ OK ] ボタンをクリックします。
[ Save private key ] ボタンをクリックして秘密鍵を保存します。
ここでは id_ecdsa.ppk として保存します(Windowsに)。
秘密鍵を使って SSH サーバーに接続
Winscp起動し、対象のサーバーを指定、「Edit」「Advanced」「Authentication」の順に開く
「Private key file」の欄にwindowsに保存したid_ecdsa.ppk を指定する
サーバー側で秘密鍵を作成したときに入力したパスフレーズを入力します
これでSSHサービスのセキュリティ設定は完了です。