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_config
の PasswordAuthentication
設定を 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
以上。
- 参考 : SSH|Ubuntu 22.04サーバー構築入門
- 参考 : ssh のセキュリティ対策をまとめてみた