LoginSignup
4
5

More than 1 year has passed since last update.

Ubuntu22.04 公開鍵認証でSSH接続する ED25519

Last updated at Posted at 2022-08-02

概要

インストールしたてのUbuntu22.04に公開鍵認証でSSH接続できるように設定します。鍵と鍵のパスフレーズでログインできるようにします。ポート変更やパスワード認証不可、rootログイン不可にしたりしてセキュリティを固めにします。ローカル環境はWindows10 Pro、teraterm4.105です。Ubuntu22.04のIPは192.168.88.15です。鍵のアルゴリズムはrsaではなくED25519を使いました。

下記のようにsshが起動していることを前提としています。(私はUbuntuインストール時にsshをインストールしました。そのあと特に何もしていませんが、sshは自動で起動しているみたいです。)

$ systemctl status ssh.service

image.png

大雑把な手順

  1. 公開鍵と秘密鍵をteratermで作る
  2. 公開鍵をサーバに設置
  3. /etc/ssh/sshd_configを変更
  4. ファイアウォール設定変更
  5. 接続確認

こちらを参考にさせていただきました。

手順1 公開鍵と秘密鍵をteratermで作る

image.png
image.png
ED25519を選びます。rsaはUbuntu22.04ではデフォルトで無効にされています。
image.png
好きなフォルダに保存しておきます。鍵のパスフレーズは手順5で使います。忘れないでください。
image.png
image.png

手順2 公開鍵をサーバに設置

image.png
image.png
チェックを外しておかないと後ではまります。
image.png
公開鍵を設置するためにブレインパスワードでサーバにSSH接続します。ユーザ名パスワードはインストール時に設定したものか、ログインできるものを使います。
image.png
ログインできるはずです。
image.png
ログインしたら、さっき保存したid_ed25519.pubをteratermにドラッグアンドドロップします。するとこの画面が出てくるのでOKを押します。
image.png
送られたことを確認します。
image.png
ここからは公開鍵id_ed25519.pubをリネームして.sshフォルダに移動する作業をするのですが、もともとhomeに.sshフォルダがありauthorized_keysが入っていいたので、default_authorized_keysにして念のためバックアップとしておきます。

$ mv .ssh/authorized_keys .ssh/default_authorized_keys

id_ed25519.pubをリネームして.sshフォルダに移動させて、ファイル、ディレクトリの権限を変更します。

$ mv id_ed25519.pub .ssh/authorized_keys
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys

手順3 /etc/ssh/sshd_configを変更

sshd_configのバックアップを取っておきます。

$ sudo cp /etc/ssh/sshd_config /etc/ssh/backup_sshd_config

sshd_configをnanoで書き換えます。

$ sudo nano /etc/ssh/sshd_config

ポート番号など、セキュリティを固くします。
上から順番に変更点。コメントアウトを消したところもあります。

Port 55055
PermitRootLogin no
PasswordAuthentication no
PasswordAuthentication no

変更したら、Ctrl+X押して、Y押してEnter。sshを再起動します。

systemctl restart sshd

手順4 ファイアウォール設定変更

ここからサーバのコンソールで作業します。55055だけアクセスできるようにします。limitは30秒間の間に6回以上接続を試みたIPアドレスを許可しないです。

$ sudo ufw enable
$ sudo ufw limit 55055
$ sudo ufw status

こんな感じになりました。
image.png

手順5 接続確認

image.png
image.png
パスフレーズは手順1で鍵作成時に入力したものです。
image.png
ログイン出来たら完了です。
image.png
22番ポートやパスワード、rootでログインを試みましたが、設定どおりログインできないようになっていました。

さいごに

Ubuntu20.04では、鍵のアルゴリズムにrsaを使っても問題なかったのですが、22.04ではエラーが出るらしいです。(デフォルトはrsaが無効にされている。私は、たまたまエラーが出る前に知って、エラーが出るか見れてません。)22.04でもrsaを使う回避策があるらしいのですが、解決策はED25519を使うとのことでした。
https://ja.confluence.atlassian.com/bitbucketserverkb/ssh-rsa-key-rejected-with-message-no-mutual-signature-algorithm-1026057701.html

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5