/etc/ssh/sshd_config
にListenAddressがあります。 ssh.service
は起動時に起動しませんが、起動後に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/SfjPQzX にあります。
私も同じ問題を抱えていました。この問題の根本的な原因は、すぐに使用できるsshdユニットファイルに依存関係としてnetwork.targetがあることです。 sshd構成ファイルでIPアドレスを明示的に指定する場合、sshdを開始する前に、インターフェースで構成する必要があります。network.targetが処理するものではありません。この問題を解決するには、rootの下のコンソールで行う必要があります。
# systemctl edit sshd
エディターが開いたら、network-online.targetへの依存関係を定義します。
[Unit]
After=network-online.target
'systemctl edit ...'コマンドはファイルを作成します
/ etc/systemd/system/$ {SERVICE_NAME} .d/override.conf
入力を使用して、保存後に依存関係ツリーを再読み込みします。これは通常、ユニットファイルを手動で編集した後に「systemctldaemon-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
[〜#〜] update [〜#〜]:このアドバイスは、ネットワーク管理にsystemd-networkdを使用しているオペレーティングシステムでのみ機能します。 systemd-networkdが有効になっていないシステムの場合、 "Restart = on-failure"オプションは "RestartSec = 5"とともに、起動試行間のスリープを制御するのに役立つ場合があります