У меня установлено openssh-server
, но я хотел бы иногда отключить службу sshd
по умолчанию при загрузке и запускать ее только с терминала при необходимости.
Исходя из рекомендаций многих других вопросов , включение и отключение службы при загрузке должно быть простым на моем systemd
с использованием дистрибутива 16.04:
$sudo systemctl disable sshd.service
1114 Это похоже на работу. Однако после этого я больше не могу включить службу при загрузке:
$sudo systemctl enable sshd.service
Failed to execute operation: No such file or directory
Даже удаление и переустановка openssh-server
не исправляет это, а purge
делает.
Как мне повторно включить sshd
при загрузке, когда я отключил его через systemd
?
Обратите внимание, что даже в этом испорченном состоянии я все еще могу вручную запускать и останавливать службу через service ssh
[пуск | остановка] `
Сервис sshd изначально записан как ssh.service, а sshd.service установлен как псевдоним. Проверьте последнюю строку следующего вывода.
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
Из-за этого, когда ssh.service
включен, мы можем обозначить его как sshd.service
. Но когда вы отключили sshd.service
и перезагрузили, ssh.service
больше не загружается, и из-за этого вы не можете отнести его как sshd.service
в этом состоянии. Вы должны сослаться как ssh.service
вместо этого. поэтому, если вы запустите sudo systemctl enable ssh.service
, он успешно активирует ssh.service
(с псевдонимом sshd.service
).