Ubuntu 24.04 マシンに LAN 内から SSH 接続できるようにする

Ubuntu 24.04 をインストールした PC に、LAN 内の他の PC から SSH 接続できるようにする。

# SSH をインストールする
$ sudo apt install -y openssh-server

# 簡単のためファイアウォールを無効化してしまう
$ sudo ufw disable

# 設定を変更する
$ sudo vi /etc/ssh/sshd_config

sshd_config ファイルの内容は以下のようにする。

# root ユーザでのログインを禁止する
PermitRootLogin no
# パスワード認証を有効にする (yes) → ssh-copy-id を行った後は no にする
PasswordAuthentication yes
# 公開鍵認証を有効にする
PubkeyAuthentication yes
# ssh-rsa 方式の公開鍵を許可する (コレ重要!)
PubkeyAcceptedAlgorithms +ssh-rsa

そしたら SSH を起動しておく。

# 設定ファイルの構文チェック
$ sudo sshd -t

# 設定を変更する
$ sudo systemctl restart ssh

# 常時起動するようにしておく
$ sudo systemctl enable ssh
$ sudo systemctl status ssh

続いて、対象の PC に接続したいクライアント端末で作業を行う。

# SSH 鍵ペアを作る
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/example -N '' -C 'Example'

$ cat ~/.ssh/example.pub
ssh-rsa 【Public Key】 Example

$ cat ~/.ssh/example
-----BEGIN OPENSSH PRIVATE KEY-----
【Private Key】
-----END OPENSSH PRIVATE KEY-----

# 以下のコマンドで公開鍵を `~/.ssh/authorized_keys` に貼り付けさせる
$ ssh-copy-id ~/.ssh/example.pub 【ユーザ名】@【SSH 接続先 PC のプライベート IP アドレス】
# パスワード認証が求められる

ssh-copy-id コマンドを使って、クライアントからサーバへ、公開鍵を注入するのが鍵管理の筋ではあるが、結局はサーバ側の ~/.ssh/authorized_keys に公開鍵を書き込めていれば良いので、コピペして書き写したりしても良い。

公開鍵を書き込んだら、/etc/ssh/sshd_configPasswordAuthentication 設定を no に変えておき、SSH 接続時にパスワード認証を求められないようにしてしまおう。

# /etc/ssh/sshd_config

# パスワード認証を求めないようにする (no)
PasswordAuthentication no

設定ファイルを書き換えたら $ sudo systemctl restart ssh で再起動を忘れないようにする。

最後に、クライアント側で以下のように ~/.ssh/config を書いてやればうまく接続できるだろう。

Host example
  HostName      【プライベート IP アドレス・もしくはホスト名】
  Port          22
  User          【ユーザ名】
  IdentityFile  ~/.ssh/example
$ ssh example

以上。