概要
インストールしたての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
大雑把な手順
- 公開鍵と秘密鍵をteratermで作る
- 公開鍵をサーバに設置
- /etc/ssh/sshd_configを変更
- ファイアウォール設定変更
- 接続確認
こちらを参考にさせていただきました。
手順1 公開鍵と秘密鍵をteratermで作る
ED25519を選びます。rsaはUbuntu22.04ではデフォルトで無効にされています。
好きなフォルダに保存しておきます。鍵のパスフレーズは手順5で使います。忘れないでください。
手順2 公開鍵をサーバに設置
チェックを外しておかないと後ではまります。
公開鍵を設置するためにブレインパスワードでサーバにSSH接続します。ユーザ名パスワードはインストール時に設定したものか、ログインできるものを使います。
ログインできるはずです。
ログインしたら、さっき保存したid_ed25519.pubをteratermにドラッグアンドドロップします。するとこの画面が出てくるのでOKを押します。
送られたことを確認します。
ここからは公開鍵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
手順5 接続確認
パスフレーズは手順1で鍵作成時に入力したものです。
ログイン出来たら完了です。
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