sshd_configでListenAddressを使用すると、起動時にssh.serviceは起動しませんが、起動後に手動で起動すると起動します。

sshd_configでListenAddressを使用すると、起動時にssh.serviceは起動しませんが、起動後に手動で起動すると起動します。

/etc/ssh/sshd_configssh.service起動時に起動しない.txtファイルにListenAddressがありますが、service ssh start起動後に実行すると起動します。

これは次のエラーです/var/log/syslog

$ sudo cat /var/log/syslog | grep -i ssh
Feb  9 10:03:50 nook systemd[1]: ssh.service: Main process exited, code=exited, status=255/n/a
Feb  9 10:03:50 nook systemd[1]: ssh.service: Unit entered failed state.
Feb  9 10:03:50 nook systemd[1]: ssh.service: Failed with result 'exit-code'.

オンラインで探してみましたが、何が間違っているのかわからないようです。起動後に手動で起動すると機能しますが、起動時に起動しません。 :/

これは私のものです/etc/ssh/sshd_config

UsePAM yes
PrintMotd no
AcceptEnv LANG LC_*
HostKey /etc/ssh/ssh_host_ed25519_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
KexAlgorithms [email protected],ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
Ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
MACs [email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,[email protected]
LogLevel VERBOSE
Subsystem sftp  /usr/lib/ssh/sftp-server -f AUTHPRIV -l INFO
UsePrivilegeSeparation sandbox
Protocol 2
X11Forwarding no
AllowTcpForwarding no
AllowStreamLocalForwarding no
GatewayPorts no
PermitTunnel no
PermitEmptyPasswords no
IgnoreRhosts yes
UseDNS yes
Compression no
TCPKeepAlive no
AllowAgentForwarding no
PermitRootLogin no
AllowGroups sshusers
ClientAliveCountMax 0
ClientAliveInterval 300
LoginGraceTime 30
ListenAddress 192.168.1.100   # IP of server
MaxAuthTries 2
MaxSessions 2
MaxStartups 2
ChallengeResponseAuthentication yes

私の完全な起動ログは/var/log/syslog次の場所にあります。https://pastebin.com/SfjPQzXu

ベストアンサー1

私も同じ問題があります。問題の根本的な原因は、デフォルトのsshdユニットファイルだけですネットワーク。依存関係として。 sshd設定ファイルにIPアドレスを明示的に指定する場合は、sshdが起動する前にインターフェイスでIPアドレスを設定する必要があり、network.targetはそれを気にしないでください。この問題を解決するには、コンソールのルートの下で次の操作を行う必要があります。

# systemctl edit sshd

エディタが開いたら、network-online.targetの依存関係を定義します。

[Unit]
After=network-online.target

「systemctl edit ...」コマンドでファイルが生成されます。

/etc/systemd/system/${SERVICE_NAME}.d/override.conf

入力を受け取り、保存して依存関係ツリーを再ロードします。通常、ユニットファイルを手動で編集した後、「systemctl daemon-reload」を実行して実行します。

参考にしてください: /lib/systemd/system 以下のユニットファイルはパッケージマネージャによって管理され、次回の更新時に上書きされるため、編集しないでください。

しかし、network-online.targetを単位依存関係として持つだけでは十分ではありません。 systemdに付属しているほとんどのLinuxベースのオペレーティングシステムでは、network-online.targetはnetwork.targetの直後に始まります。これは、network-online.targetが依存する他のサービスはデフォルトで無効になっているためです。知られているsystemd-networkd-wait-online.service。したがって、systemd-networkd-wait-online.serviceが有効になっていることを確認してください。

# systemctl is-enabled systemd-networkd-wait-online
disabled
# systemctl enable systemd-networkd-wait-online


修正する:この推奨事項は、ネットワーク管理にsystemd-networkdを使用するオペレーティングシステムにのみ適用されます。 systemd-networkdが有効になっていないシステムの場合再開=失敗した場合「オプションが役に立ちます」再開秒= 5「ブート試行間の睡眠制御

おすすめ記事