私のデバイスではsshを使用し、sshdを使用してsshdを起動できますが、systemctl start sshd
起動時に自動的に起動したいと思います。問題は、試してみるとsudo systemctl enable sshd
次のエラーが発生することです。
Failed to enable unit: File /etc/systemd/system/multi-user.target.wants/sshd.service already exists.
デバイスの起動時にSSHサーバーが起動するようにこの問題を解決するにはどうすればよいですか?
sudo systemctl status sshd
編集:起動後すぐに実行したときの出力は次のとおりです。
○ sshd.service - OpenSSH Daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
ベストアンサー1
sshd.service - OpenSSH Daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
これは、サービスが現在無効になっている(=開始するように構成されていない)、実行されていないことを意味します。
情報
Failed to enable unit: File /etc/systemd/system/multi-user.target.wants/sshd.service already exists.
/etc/systemd/system/multi-user.target.wants/sshd.service
すでに存在することを示します。したがって、サービスが無効になっているため、そこにはいけませんsystemctl
。
/etc/systemd/system/multi-user.target.wants/
のすべてのファイルは、サービスが有効になっている実際のファイルへのシンボリックリンクでなければなりません。実際には有効になっていない*.service
ため、sshd.service
これは壊れたシンボリックリンクであるか、それに配置された他のファイル(偶然または悪意のあるもの)であることを示します。
ls -l /etc/systemd/system/multi-user.target.wants/sshd.service
壊れたシンボリックリンクか、他のサービスや他のファイルへのリンクであるかを確認するには、aを実行する必要があります。他の有効なファイルへのリンクとして表示される場合、悪意のある作業が進行中である可能性*.service
があります。つまり、システムがハッキングされた可能性があります。無関係なランダムファイルのように見える場合は、rootとして実行された無効なコマンドの結果になる可能性があります。
システムがハッキングされているように見える場合は、次を参照してください。
- 感染したサーバーを処理する方法は?サーバー障害時
- 感染したサーバーを処理する方法は?情報セキュリティのマスター
とにかくそれ以来/etc/systemd/system/multi-user.target.wants/sshd.service
しなければならない実際のアイテムへのシンボリックリンクなので、sshd.service
削除しても安全です。
sudo rm /etc/systemd/system/multi-user.target.wants/sshd.service
systemd
削除が混乱しないように、間違ったリンク/ファイルを削除した後にsystemd設定を再ロードするのが賢明かもしれません。
sudo systemctl daemon-reload
その後、正常に有効にできますsshd.service
。
sudo systemctl enable sshd.service