UbuntuにSSHで公開鍵認証できるようにする

動作環境

  • Ubuntu 20.04.6 LTS

sshdの有効化

デフォルトでsshdがいんすトールされていなかったためインストールする

sudo apt update
sudo apt -y install openssh-server

起動確認

systemctl status ssh

ローカルPCでやること

ローカルPCから公開鍵をUbuntuに送る

scpコマンドを使って鍵を送る

scp [鍵ファイル] [ユーザ]@[Ubuntu ipアドレス or ホスト名]:[Ubuntuディレクトリ]
scp ~/.ssh/id_rsa.pub takumi@192.168.11.100:~/.ssh

Ubuntuでやること

転送された公開鍵ファイルのファイル名変更

先ほどのscpコマンドでローカルPCの公開鍵は~/.sshディレクトリにid_rsa.pubというファイル名で格納されている。公開鍵のファイル名をauthorized_keyに変更する。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

# 元のid_rsa.pubは削除する
rm ~/.ssh/id_rsa.pub

ファイルの権限編集

管理者のみが閲覧、書き込みができるようにauthorized_keyファイルの権限を編集する

chmod 600 ~/.ssh/authorized_keys

# 権限確認
ls -l ~/.ssh
-rw------- 1 takumi takumi 500 1

sshdの設定

/etc/ssh/sshd_configでsshの設定をする

  • パスワード認証の禁止
  • ルートログインの禁止
  • 公開鍵認証の許可

以下のように編集

# ルートログインの禁止
PermitRootLogin no

# 公開鍵認証の許可
PubkeyAuthentication yes

# パスワード認証の禁止
PasswordAuthentication no

sshdの再起動

sudo systemctl restart ssh

ssh configを設定する

ipアドレスやユーザの指定をする必要がなくなるためssh configを設定しておく。
~/.ssh/configを編集

Host home-server
  HostName 192.168.11.100
  Identityfile ~/.ssh/id_rsa
  User takumi

sshでhome-serverを指定するだけで接続できるようになった

ssh home-server
Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-76-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

Expanded Security Maintenance for Applications is not enabled.

45のアップデートはすぐに適用されます。
これらの追加アップデートを確認するには次を実行してください: apt list --upgradable

7 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm

New release '22.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Your Hardware Enablement Stack (HWE) is supported until April 2025.
Last login: Sun Jul  2 11:56:27 2023 from 192.168.11.5
takumi@takumi-ThinkPad-L460:~$ exit