web-dev-qa-db-fra.com

Activer et désactiver sshd au démarrage via systemd

J'ai openssh-server installé, mais j'aimerais parfois laisser le service sshddésactivé par défaut au démarrage et ne le démarrer qu'à partir du terminal, si nécessaire.

Selon les conseils de plusieurs autres questions , l'activation et la désactivation du service au démarrage doivent être simples sur mon systemdà l'aide de 16.04 distro:

$Sudo systemctl disable sshd.service

Cela semble fonctionner. Cependant, je ne peux plus activer le service au démarrage après cela:

$Sudo systemctl enable sshd.service 
Failed to execute operation: No such file or directory

Même désinstaller et réinstaller openssh-server ne résout pas le problème, mais un purgele fait.

Comment réactiver sshdau démarrage une fois que je l'ai désactivé via systemdname__?

Notez que même dans cet état de désordre, je peux toujours démarrer et arrêter manuellement le service via service ssh [start | stop] `.

2
BeeOnRope

le service sshd est à l'origine écrit en tant que ssh.service et sshd.service est défini en tant que nom d'alias. Vérifiez la dernière ligne de la sortie suivante.

arryph@localhost:~$ systemctl cat sshd.service 
# /lib/systemd/system/ssh.service
[Unit]
Description=OpenBSD Secure Shell server
After=network.target auditd.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run

[Service]
EnvironmentFile=-/etc/default/ssh
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=notify

[Install]
WantedBy=multi-user.target
Alias=sshd.service

De ce fait, lorsque ssh.service est activé, nous pouvons le désigner par sshd.service. Mais lorsque vous avez désactivé sshd.service et redémarré, ssh.service n'est plus chargé et de ce fait, vous ne pouvez pas le nommer sshd.service dans cette condition. Vous devez vous référer à ssh.service à la place. donc, si vous exécutez Sudo systemctl enable ssh.service, il activera ssh.service (alias sshd.service) avec succès.

6
arryph