SSH は RSA 鍵より ED25519 鍵の方が強固で速いらしいので、RSA 鍵から ED25519 鍵に変更してみました。
まずは ED25519 鍵の作成。公開鍵を作成したいユーザでログインして、
% ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/hoge/.ssh/id_ed25519):
公開鍵・秘密鍵の保存先を尋ねてきますので、ここはそのまま Return。続いてパスフレーズを尋ねてきます。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
パスフレーズを2回入力。
Your identification has been saved in /home/hoge/.ssh/id_ed25519 Your public key has been saved in /home/hoge/.ssh/id_ed25519.pub The key fingerprint is: SHA256:VxxxN0yyyTdrPzzz8OCPxxxCAoyyyyNirzzzPs0xxxk hoge@fuga.kncn.net The key's randomart image is: +--[ED25519 256]--+ | .o+. ..o | | o. = .+ | | ..o + o + | | …o E . oo | |..o o.+ S ..== | |oo o.o.+ o …B | | .oo o. . . . .+o| |.o. o . o+. | |+ .. .o | +----[SHA256]-----+
これで、/home/hoge/.ssh/ に id_ed25519(クライアント用の秘密鍵) と id_ed25519.pub(サーバ用の公開鍵) が作成されます。公開鍵を authorized_keys として、パーミッションを整えておきます。
% mv ~/.ssh/id_ed25519.pub ~/.ssh/authorized_keys
% chmod 600 ~/.ssh/authorized_keys
これでサーバ側の準備は完了。
クライアントに id_ed25519 を持って来て、~/.ssh/におけば準備完了。準備完了するのは macOS の場合ですので、Windows など他の OS では事情が違うかもしれません。Linux などの UNIX系OSであれば大丈夫だと思いますけど。
サーバ側の /etc/ssh/sshd_config を適当に編集する必要があるかもしれませんが、私の場合はそのままで大丈夫でした。
iOS で使っている SSH クライアント Prompt 2 もid_ed25519 を Prompt にドラッグ&ドロップして鍵を使えるようになりました。
FileZilla もこの辺りを参考にすれば大丈夫だと思われます。
SSH接続にて、ed25519の公開鍵+パスワードの二段階認証を行う