![OpenBSD에서 특정 OpenSSH 키 비활성화: 해당 'sshd_config' 항목이 무시되는 이유와 'ssh-keygen -A'가 금지된 키를 생성하는 이유는 무엇입니까?](https://rvso.com/image/768908/OpenBSD%EC%97%90%EC%84%9C%20%ED%8A%B9%EC%A0%95%20OpenSSH%20%ED%82%A4%20%EB%B9%84%ED%99%9C%EC%84%B1%ED%99%94%3A%20%ED%95%B4%EB%8B%B9%20'sshd_config'%20%ED%95%AD%EB%AA%A9%EC%9D%B4%20%EB%AC%B4%EC%8B%9C%EB%90%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EC%99%80%20'ssh-keygen%20-A'%EA%B0%80%20%EA%B8%88%EC%A7%80%EB%90%9C%20%ED%82%A4%EB%A5%BC%20%EC%83%9D%EC%84%B1%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
OpenBSD 6.9 서버에서 다음을 달성하려고 합니다.
- 모든 키 사용 금지(
ssh-ed25519
두 키 중 하나만 사용 금지)섬기는 사람그리고고객측면. ssh-keygen -A
승인된 알고리즘에 의해서만 키를 생성하도록 제한하며ssh-ed25519
다른 것은 없습니다.
이를 달성하기 위해 내 파일에 다음 줄을 추가했습니다 sshd_config
.
HostKey /etc/ssh/ssh_host_ed25519_key
CASignatureAlgorithms ssh-ed25519
HostbasedAcceptedKeyTypes ssh-ed25519
HostKeyAlgorithms ssh-ed25519
PubkeyAcceptedKeyTypes ssh-ed25519
또한 my 에 다음 줄을 추가했습니다 ssh_config
.
CASignatureAlgorithms ssh-ed25519
HostbasedAcceptedKeyTypes ssh-ed25519
HostKeyAlgorithms ssh-ed25519
PubkeyAcceptedKeyTypes ssh-ed25519
승인된 키를 제외한 모든 키를 삭제했습니다.
SSH를 다시 시작했습니다.
# rcctl restart sshd
sshd(ok)
sshd(ok)
다음 명령을 실행하여 내 설정이 활용되는지 확인한 후:
# ssh -Q HostbasedAcceptedAlgorithms
# ssh -Q HostKeyAlgorithms
# ssh -Q PubkeyAcceptedAlgorithms
놀랍게도 그들은 모두 다음과 같은 결과를 얻었습니다.
ssh-ed25519
[email protected]
[email protected]
[email protected]
ssh-rsa
rsa-sha2-256
rsa-sha2-512
ssh-dss
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
즉, 키 제한이 무시됩니다.
혹시라도 안전을 위해 서버를 다시 시작해도 별차이가 없습니다.
잠재적인 해결 방법은 인증된 파일을 제외한 모든 키 파일을 제거하는 것입니다. 그러나 init 스크립트에는 시스템을 재부팅할 때마다 sshd 데몬이 시작되기 전에 누락된 SSH 키를 모두 재생성하는 행이 /etc/rc
있습니다 .ssh-keygen -A
금지된 알고리즘을 포함한!
따라서 키를 제거해도 문제가 해결되지 않습니다.
추가 해결 방법으로 ssh-keygen -A
init 스크립트에서 해당 행을 제거하거나 이를 내 사용자 정의 키 생성 알고리즘으로 바꿀 수 있지만 그렇게 하면 모든 것이 시작된 곳으로 돌아가게 됩니다. OpenBSD 팀이 새 버전의 /etc/rc
. 해당 회선 제거를 자동화하고 많은 수의 서버에서 이러한 엉성한 해결 방법을 테스트하는 것은 어렵고 문제가 발생하면 대규모 네트워크 오류로 이어질 수 있습니다.
그래서 계속해서 조사를 했고 ssh-keygen
. -A
구성 파일 등을 통해 외부에서 스위치 동작을 제한하는 것이 불가능하다는 것을 알았습니다 . 키가 인증되었는지 여부에 대한 예비 테스트도 수행하지 않고 하드코딩된 배열의 알고리즘 목록에 따라 키를 생성합니다. 이를 방지하는 유일한 방법은 의 사용자 정의 포크를 편집, 재컴파일 및 사용하는 것입니다 ssh-keygen
. 하지만 OpenSSH를 업데이트할 때마다 이 문제를 처리해야 합니다...
다른 운영 체제에서는 부분적인 솔루션을 찾았지만 OpenBSD에서는 그렇지 않았습니다.
누군가 나에게 적절한 해결책을 알려 주시겠습니까? 내 키 제한이 무시되는 이유 sshd_config
와 금지된 알고리즘으로 키 생성을 중지하는 ssh_config
방법은 무엇입니까 ?ssh-keygen -A
누군가 묻기 전에: 다른 모든 설정은 OpenSSH에 의해 두 구성 파일 모두에서 활용되므로 이러한 구성 파일은 실제로 로드되는 실제 파일입니다.
모든 유용한 답변에 감사드립니다.