OpenSSHをソースコードからインストール
動作確認済みシステム 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