- WindowsとLinuxでSSHを公開鍵認証で接続する方法を解説
- 環境
- Windows(クライアント)で公開・秘密鍵の作成
- Linux(サーバ)で公開鍵の登録
- 公開鍵接続
- パスワード認証を禁止にする
WindowsとLinuxでSSHを公開鍵認証で接続する方法を解説
パスワード認証ではなく、公開鍵認証でセキュアに接続する方法を解説します。
難しくないので、手順を覚えたあとにでも理屈も同時に覚えておいたほうがいいです。
環境
(サーバ)Fedora40
(クライアント)Windows 11 Professional
Windows(クライアント)で公開・秘密鍵の作成
フォルダの作成
.sshフォルダがないと、ユーザーフォルダの直下にファイルが生成されるので、作成します
mkdir .ssh
鍵作成
ssh-keygen
秘密鍵と公開鍵が生成されました
鍵名、パスフレーズはに未入力で作成しました
今回は公開鍵を渡さないので、パスフレーズは未入力ですが、外部に渡す場合はパスフレーズは入力してください。
今回の鍵名はデフォルトで作成されたid_ed25519になります。
id_ed25519が秘密鍵、id_ed25519.pubが公開鍵になります。
指定すれば指定のファイル名が2つ生成されます。
Linux(サーバ)で公開鍵の登録
パスワード認証で一度接続します
ssh ユーザ名@サーバ名
.sshフォルダの確認
ls -la
なければ作成し移動する
mkdir .ssh
cd .ssh
authorized_keysを作成
vi authorized_keys
Windowsで作成された.pubファイルをそのままコピペします
保存します
SSH再起動
sudo systemctl restart sshd
ここでSSHは一度切断します。
公開鍵接続
パスワードなしで接続できました。
パスワード認証を禁止にする
パスワード認証はセキュリティリスクがあるので、インターネットと接続しているサーバであれば必須になります。個人利用の場合は禁止にしなくても使えますが、公開鍵認証での検証もしたいので、いつも禁止にしています。
あと毎回パスワードを入力するのがめんどくさいです。
sudo vi /etc/ssh/sshd_config
PasswordAuthentication no
ssh再起動
sudo systemctl restart sshd