openssh-server
をインストールしましたが、ブート時にデフォルトでsshd
サービスをオフにしておき、必要に応じてターミナルからのみ開始したい場合があります。
many other questions のアドバイスに基づいて、16.04ディストリビューションを使用してsystemd
でブート時のサービスの有効化と無効化を簡単に行う必要があります。
$Sudo systemctl disable sshd.service
それはうまくいくようです。ただし、その後の起動時にサービスを有効にすることはできません。
$Sudo systemctl enable sshd.service
Failed to execute operation: No such file or directory
openssh-server
をアンインストールおよび再インストールしても修正されませんが、purge
は修正されます。
sshd
で無効にした後、ブート時にsystemd
を再度有効にするにはどうすればよいですか?
この混乱した状態でも、service ssh
[start | stop] `を介して手動でサービスを開始および停止できることに注意してください。
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
)が正常に有効になります。