표준(시스템) 시스템 단위 파일에서 줄을 어떻게 제거합니까? 자세한 내용은 다음과 같습니다.
ls -la /etc/ssh/ssh_host_*key*
이는 사용하지 않거나 원치 않는 호스트 키 유형이 있음을 보여줍니다. 내 에는 구성되어 있지 않지만 sshd_config
전혀 존재하지 않는 것이 좋습니다. 제거하면 자동으로 재생성됩니다.
내가 보기에는 다음이 /usr/lib/systemd/system/sshd.service
포함됩니다.
Wants=sshdgenkeys.service
그 내용은 cat /usr/lib/systemd/system/sshdgenkeys.service와 함께 아래에 표시됩니다.
[Unit]
Description=SSH Key Generation
ConditionPathExists=|!/etc/ssh/ssh_host_dsa_key
ConditionPathExists=|!/etc/ssh/ssh_host_dsa_key.pub
ConditionPathExists=|!/etc/ssh/ssh_host_ecdsa_key
ConditionPathExists=|!/etc/ssh/ssh_host_ecdsa_key.pub
ConditionPathExists=|!/etc/ssh/ssh_host_ed25519_key
ConditionPathExists=|!/etc/ssh/ssh_host_ed25519_key.pub
ConditionPathExists=|!/etc/ssh/ssh_host_rsa_key
ConditionPathExists=|!/etc/ssh/ssh_host_rsa_key.pub
[Service]
ExecStart=/usr/bin/ssh-keygen -A
Type=oneshot
RemainAfterExit=yes
를 사용하여 유닛 파일 설정을 무시하거나 생성할 수 있다는 것을 알고 systemctl edit
있지만줄은 어떻게 ConditionPathExists=|!/etc/ssh/ssh_host_dsa_key
제거되었나요?
내가 끝내고 싶은 것은 다음과 비슷합니다.
[Unit]
Description=SSH Key Generation
ConditionPathExists=|!/etc/ssh/ssh_host_ed25519_key
ConditionPathExists=|!/etc/ssh/ssh_host_ed25519_key.pub
ConditionPathExists=|!/etc/ssh/ssh_host_rsa_key
ConditionPathExists=|!/etc/ssh/ssh_host_rsa_key.pub
[Service]
ExecStart=/usr/bin/ssh-keygen -t rsa|ed25519 -a 32
Type=oneshot
RemainAfterExit=yes
ssh-keygen에 대한 명령이 올바른지 잘 모르겠지만 이것이 일반적인 생각입니다. 모두가 아닌 두 가지 호스트 키 유형만 생성하고 싶습니다.
답변1
시스템 단위에서는 일반적으로 빈 값을 할당하여 재정의하여 목록을 재설정할 수 있습니다. 이것조건에도 적용됩니다:
이러한 옵션 중 하나에 빈 문자열이 할당되면 조건 목록이 완전히 재설정되고 모든 종류의 이전 조건 설정이 적용되지 않습니다.
재정의에서 다음을 사용하십시오.
ConditionPathExists=
ConditionPathExists=|!/etc/ssh/ssh_host_ed25519_key
ConditionPathExists=|!/etc/ssh/ssh_host_ed25519_key.pub
ConditionPathExists=|!/etc/ssh/ssh_host_rsa_key
ConditionPathExists=|!/etc/ssh/ssh_host_rsa_key.pub