SSH の公開鍵暗号方式設定
Windowsに SSH 秘密鍵、サーバーに SSH 公開鍵を作成し、鍵ペアによる認証でログインできるようにする。
1.ECDSA でキーペアを作成
一般ユーザーになり、ECDSA でキーペアを作成します
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# 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/huong/.ssh/id_ecdsa Your public key has been saved in /home/huong/.ssh/id_ecdsa.pub The key fingerprint is: SHA256:Ny30WR280uUqLAcsRkI55snlQRf0xNL1rnsj1MvwVLo huong@Lepard The key's randomart image is: +---[ECDSA 256]---+ | ..o..++..o. | | = +..oo +o| | + B o... o.=| | + +.oo + +o| | .S.+o+ ooo| | ..o+oo+ | | o..*..| | .E*.| | o..| +----[SHA256]-----+ |
1 2 |
$ mv ~/.ssh/id_ecdsa.pub ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys |
2.秘密鍵ログイン設定
1 2 3 4 5 6 7 8 |
$ su - パスワード: # vi /etc/ssh/sshd_config ■46行目あたり行頭の「#」を削除 変更前) #PubkeyAuthentication yes 変更後) PubkeyAuthentication yes |
SSH を再起動
1 |
# 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.秘密鍵でのみログインするよう変更します
1 2 3 4 5 |
# vi /etc/ssh/sshd_config ■66 行目あたり 「#PasswordAuthentication yes」の下に「PasswordAuthentication no」を追加 #PasswordAuthentication yes PasswordAuthentication no |
1 |
# 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 を指定する
サーバー側で秘密鍵を作成したときに入力したパスフレーズを入力します
Tera Termで接続する場合は以下のように
「Use RSA/DSA/ECDSA/...」の欄にはwindowsに保存した「id_ecdsa.ppk」を指定する
これでSSHサービスのセキュリティ設定は完了です。