sshd_config で IP 固定すると OS 起動時に sshd が上がってこないハナシ

/etc/ssh/sshd_config で……

ListenAddress 192.168.0.5

……とか固定すると OS 起動時に sshd がコケる。i/f に IP 振られる前に sshd が起動して「bind できねーよ!!」つって落ちてるっぽい。

Oct 25 18:45:41 hostname sshd[630]: error: Bind to port 22 on 192.168.0.5 failed: Cannot assign requested address.
Oct 25 18:45:41 hostname sshd[630]: fatal: Cannot bind any address.
Oct 25 18:45:41 hostname systemd[1]: ssh.service: Main process exited, code=exited, status=255/EXCEPTION

xrdp なんかでも同様にコケる。

systemd の unit を書き換えて After=network.targetAfter=network-online.target とする。

# sudo systemctl edit sshd.service

こんな風にする。

snippet.bash
### Editing /etc/systemd/system/ssh.service.d/override.conf
### Anything between here and the comment below will become the new contents of>
 
[Unit]
After=network-online.target auditd.service
 
### Lines below this comment will be discarded
 
### /lib/systemd/system/ssh.service
# [Unit]
# Description=OpenBSD Secure Shell server
# Documentation=man:sshd(8) man:sshd_config(5)
# After=network.target auditd.service
# ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
# 
# [Service]

……ほんとにこんなこと毎回しなきゃいけないの?ちなみに listen する IP が 0.0.0.0 である場合はお構いナシで上がってくるので問題は発生しません。しませんが……公開してるサーバーだとサービス提供してる IP とメンテナンス用の IP は別にしたいとか思いもありう~むむむむむ……

  • blog/2022/20221025194133_impatient-sshd
  • 最終更新: 2022/10/25 19:57