OpenSSHをソースコードからインストール

2024年11月12日

動作確認済みシステム Debian 12

SSH用のユーザ、グループを作成します。

useradd -c 'Privilege-Separated SSH' -d /dev/null -s /bin/false sshd

/var/libにsshdディレクトリを作成します。

mkdir /var/lib/sshd
chmod -R 700 /var/lib/sshd/
chown -R root:sys /var/lib/sshd/

必要なパッケージをインストールします。

apt udpate
apt install build-essential zlib1g-dev libpam0g-dev libkrb5-dev

ソースコードをダウンロード、展開し、インストールします。

cd /usr/local/src/
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p1.tar.gz
tar zxvf openssh-9.9p1.tar.gz
cd openssh-9.9p1
./configure --sysconfdir=/usr/local/etc/ssh --with-privsep-path=/var/lib/sshd --with-ssl-dir=/usr/local/ssl --with-pam --with-kerberos5
make
make install

OpenSSHのバージョンを確認します。

ssh -V
OpenSSH_9.9p1, OpenSSL 3.4.0 22 Oct 2024

SSHサーバの設定を行います。

vi /usr/local/etc/ssh/sshd_config

ポートの変更が必要な方は、以下のように設定します。

Port 50022

rootでのログインを禁止します。

PermitRootLogin no

パスワード認証を許可し、パスワードなしでのログインを許可しないようにします。

PasswordAuthentication yes
PermitEmptyPasswords no

ファイアウォールでSSHのポートを許可します。

ポート番号を標準(22/TCP)のまま変えていない場合は、以下のコマンドで設定できます。

ufw allow 'SSH'

ポート番号を変えている場合は、以下のコマンドで設定できます。(例として50022/TCP)

ufw allow 50022/tcp

ファイアウォールの設定を反映させます。

ufw reload

systemdサービスを作成します。

vi /etc/systemd/system/sshd.service
[Unit]
Description=OpenBSD Secure Shell server
After=network.target auditd.service

[Service] ExecStart=/usr/local/sbin/sshd -D
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=notify

[Install] WantedBy=multi-user.target
Alias=sshd.service

systemdサービスを再読み込みします。

systemctl daemon-reload

サービスを自動起動設定し、起動します。

systemctl enable sshd.service
systemctl start sshd.service