{{tag> linux ubuntu }} # 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.target` を `After=network-online.target` とする。 ``` # sudo systemctl edit sshd.service ``` こんな風にする。 ```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 は別にしたいとか思いもありう~むむむむむ……