公開鍵認証方式の設定
「root」ユーザをセキュリティ向上のため、公開鍵認証方式に変更します。
※接続先サーバ側で作成するため、秘密鍵を各クライアントに配布する形式になります。
1. SSH公開鍵の発行
(1) 暗号鍵の作成
認証鍵を作成します。
# ssh-keygen -t ed25519 -b 4096 -m PEM -C ""
もしくは、
# ssh-keygen -t rsa -b 4096 -m PEM -C ""
(ECDSA形式を作成の場合)
# ssh-keygen -t ecdsa -b 521 -m PEM -C ""
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): [Enter]
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): (任意のパスフレーズ)[Enter]
Enter same passphrase again:(任意のパスフレーズ)[Enter]
「Enter passphrase (empty for no passphrase):」および「Enter same passphrase again:」で任意のパスフレーズを入力します。
これで、「/root/.ssh」に
- id_ed25519
- id_ed25519.pub
もしくは
の2つの鍵が作成されます。
(2) 公開鍵の作成
公開鍵「id_ed25519.pub」の登録を行います。
# cd .ssh
# touch authorized_keys
# chmod 600 authorized_keys
# cat id_ed25519.pub >> authorized_keys
# rm id_ed25519.pub
(3) 秘密鍵のダウンロード
- 秘密鍵「id_ed25519」をクライアントPC等にダウンロードします。
- ダウンロードした「id_ed25519」のファイル名を「○○○○○○.pem」のように任意のファイル名に変更します。(拡張子は「.pem」)
- ダウンロードが完了したら、秘密鍵「id_ed25519」を削除します。
(4) SSH鍵の変換
SFTPを使用する場合には、秘密鍵をPEMからPPK形式に変換する必要があります。
2. sshdの設定
「root」ユーザのみ公開鍵認証を強制して、一般ユーザはパスワード認証とします。
# vi /etc/ssh/sshd_config
以下のように設定します。
PermitRootLogin prohibit-password
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
sshd設定のチェックを行います。
何も表示されなければOKです。
また、以下のように表示された場合は、SSHのアップデートでRSA/SHA1が使用できなくなりました。
main: sshd: ssh-rsa algorithm is disabled
この場合には、明示的に「ssh_host_ed25519_key」を指定するようにします。
# vi /etc/ssh/sshd_config
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
sshdのサービスを再起動します。
# /usr/bin/systemctl restart sshd.service
3. 一般ユーザの場合
一般ユーザに対して公開鍵認証を行う場合には、
- 「1. SSH公開鍵の発行」の方法で認証鍵の発行を行います。
- 「sshd」の設定を行います。
# vi /etc/ssh/sshd_config
パスワード認証を「no」にします。
PasswordAuthentication no
なお、特定のユーザのみ公開鍵認証方式にしたい場合には、sshd_configの末尾に以下の行を追加します。
Match User contents
PasswordAuthentication no
※「contents」ユーザに対してのみ公開鍵認証を行います。
4. SFTPを使用するためのSSH鍵の変換
上記で作成したSSH鍵はPEM形式で、SFTPでは使用できません。
そこで、SFTPに使用できるPPK形式に変換する必要があります。
この変換には、puttygenを使用します。
(1) puttygenのダウンロード
(2) 変換作業
- puttygen.exeを実行します。
- メニューバーの「Converions(変換)」-「Import Key(鍵のインポート)」を実行します。
- SSH鍵のファイル名を選択します。
- SSH鍵のパスフレーズを入力して「OK」ボタンをクリックします。
- SSH鍵が正常に読み込まれたら「Save private key(秘密鍵の保存)」ボタンをクリックします。
- 任意のファイル名を付けて保存します。(拡張子が「.ppk」となります。)
※ED25519キーをインポートする場合は、パスフレーズを空にする必要があります。
- 元の鍵ファイルをコピーします。(ファイル名を「id_25519_nopwd」とします。)
# ssh-keygen -p -f id_ed25519_nopwd
Enter old passphrase:(現在のパスワード)
Key has comment ''
Enter new passphrase (empty for no passphrase):(空白のまま)
Enter same passphrase again:(空白のまま)
Your identification has been saved with the new passphrase.
※変換したファイルにパスフレーズを付けたい場合には、保存する際にパスフレーズを登録します。
(3) SFTPクライアントソフトについて
「WinSCP」の秘密鍵の指定欄に上記で変換したPPKファイルを指定します。
最終更新:2024年08月05日 10:44