J'ai choisi Ubuntu 16.04 LTS comme système d'exploitation principal sur mes serveurs de production. Il a la dernière version du noyau Linux, des mises à jour fréquentes et semble être stable.
Cependant 2 jours je ne peux pas résoudre le problème avec le service sshd. En général ça marche bien. Les problèmes apparaissent après le redémarrage du système. Je peux me connecter via SSH, mais systemd dit que sshd.service n’est pas lancé/n’a pas pu démarrer. De plus, je ne peux pas redémarrer le service sshd et je vois la même erreur.
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2017-03-11 12:17:42 UTC; 37s ago
Process: 3535 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=255)
Main PID: 3535 (code=exited, status=255)
Mar 11 12:17:42 node2 systemd[1]: Starting OpenBSD Secure Shell server...
Mar 11 12:17:42 node2 sshd[3535]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Mar 11 12:17:42 node2 sshd[3535]: fatal: Cannot bind any address.
Mar 11 12:17:42 node2 systemd[1]: ssh.service: Main process exited, code=exited, status=255/n/a
Mar 11 12:17:42 node2 systemd[1]: Failed to start OpenBSD Secure Shell server.
Mar 11 12:17:42 node2 systemd[1]: ssh.service: Unit entered failed state.
Mar 11 12:17:42 node2 systemd[1]: ssh.service: Failed with result 'exit-code'.
J'ai réinstallé Ubuntu 16.04 LTS sur le serveur à plusieurs reprises et j'ai essayé de modifier le fichier sshd_config afin de résoudre ce problème. Cependant cela n'aide pas. Voici mon sshd_config:
# Package generated configuration file
# See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_Host_rsa_key
HostKey /etc/ssh/ssh_Host_dsa_key
HostKey /etc/ssh/ssh_Host_ecdsa_key
HostKey /etc/ssh/ssh_Host_ed25519_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need Host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
#Banner /etc/issue.net
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
UseDNS no
GSSAPIAuthentication no
Mon système de surveillance reçoit beaucoup de messages sur ce problème. Je veux juste m'assurer que tout fonctionne correctement et que je n'aurai plus de problèmes avec mon serveur à l'avenir.
Quelqu'un peut aider avec ça?
Merci
Mar 11 12:17:42 node2 sshd[3535]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Mar 11 12:17:42 node2 sshd[3535]: fatal: Cannot bind any address.
Mar 11 12:17:42 node2 systemd[1]: ssh.service: Main process exited, code=exited, status=255/n/a
Le processus sshd
est en cours d'exécution, vous pouvez vous connecter au serveur, mais systemd
ne le sait pas (il ne sait pas quel processus tuer avant de démarrer un nouveau processus sshd
). En supposant que cela se soit produit, en démarrant manuellement sshd
ou systemd
ayant perdu une trace du processus sshd
, vous devriez pouvoir le résoudre en procédant comme suit:
Localisez le processus principal sshd
et éliminez-le. Ne tuez pas les enfants (également appelé sshd
), sinon vous vous couperez du serveur!
$ ps axf | grep sshd
2208 ? Ss 0:00 /usr/sbin/sshd
18812 ? Ss 0:00 \_ sshd: pi [priv]
18891 ? S 0:01 \_ sshd: pi@pts/0
19123 pts/0 S+ 0:00 \_ grep --color=auto sshd
# kill -9 2208
Démarrez le service sshd
:
systemctl start sshd