サーバー

SSH接続の鍵をed25519方式に変更

2018年12月10日
使っているレンタルサーバー会社から、『SSHのDSA(ssh-dss)公開鍵による認証を廃止する』と連絡がありました。

TeraTermから接続する時SSHで接続しています。
鍵を使って接続していますが、どの方式だったかな。お恥ずかしい話ですが、滅多に使わないので気にしたことがなかったです。
(以前の記事 ⇒ sshでサーバーに接続

ssh-keygen -l -f 公開鍵ファイルへのパス
で鍵方式が調べられるそうです。

TeraTermでサーバーへ接続して調べました。RSA方式でした(後でファイル名を見たらRSAと入っていました)。
このまま使えるのだと思いますが、ちょうど手もすいていたので、一番安全なed25519方式へ変更してみました。

サーバーで鍵を作成するようです。
ssh-keygen -t ed25519
なのだとか。
SSH接続にて、ed25519の公開鍵+パスワードの二段階認証を行う
の解説がわかりやすかったです。詳しくは上のサイトをご覧ください。
とても簡単に書くと、
サーバーで公開鍵と秘密鍵の2種類を作って(ファイルでできる)、
公開鍵をサーバーの.sshディレクトリに置いてパーミッションを600に設定、
公開鍵ファイルをauthorized_keysへリネーム、
秘密鍵をPCなどクライアントにダウンロードしてサーバーから削除、
ターミナルから接続する時、パスフレーズと秘密鍵を使って接続、
ということになります。

普通はサーバーで鍵を作るのだと思いますが、TeraTermで作成することにしました。
この場合、ダウンロードとアップロードが逆になって、
TeraTermで公開鍵と秘密鍵の2種類を作って、
公開鍵をサーバーの.sshにファイル名authorized_keysでアップロードしてパーミッションを600に設定、
ターミナルから接続する時、クライアントに残した秘密鍵とパスフレーズを使って接続、
になります。


ターミナルソフトから接続するアカウントが複数あるので、鍵も複数作るべきなのでしょうけど、接続するのは私だけですし、同じ鍵で接続できる方が便利なのです。
ターミナルを使うことは滅多にないので、あれこれやっているとわけがわからなくなってしまいます。

サーバーで鍵を作ると、アカウントごとに違う鍵が作成されますが、TeraTermで作成すると共通にすることができるのです。

これでほとんど今まで通りに使えます。