RHEL 8.3 서버가 있고 다음은 폴더의 내용입니다 /etc/ssh
.
[root@192 ssh]# pwd
/etc/ssh
[root@192 ssh]# tree -a
.
├── moduli
├── ssh_config
├── ssh_config.d
│ └── 05-redhat.conf
├── sshd_config
├── ssh_host_ecdsa_key
├── ssh_host_ecdsa_key.pub
├── ssh_host_ed25519_key
├── ssh_host_ed25519_key.pub
├── ssh_host_rsa_key
└── ssh_host_rsa_key.pub
1 directory, 10 files
[root@192 ssh]#
나는 server1에서 서버로 ssh를 실행할 때 RSA 공개 키(ssh_host_rsa_key.pub)가 server1의 ~/.ssh/known_hosts
파일에 추가된다는 것을 발견했습니다. 그런데 다른 서버 server2를 시도하면 ECDSA 공개 키 (ssh_host_ecdsa_key.pub)가 추가됩니다 ~/.ssh/known_hosts
. 왜 차이가 있습니까? 어떤 공개 키를 사용할지는 어떻게 결정되나요?
답변1
SSH 프로토콜에서는 비밀번호, MAC, 키 교환, 호스트 키, 공개 키에 사용되는 알고리즘을 독립적으로 협상할 수 있습니다. 대부분의 경우 선택한 알고리즘은 서버에서도 지원하는 첫 번째 클라이언트측 알고리즘입니다.
일반적으로 서버에는 여러 개의 호스트 키가 있으며 사용되는 호스트 키의 선택은 협상된 알고리즘에 따라 달라집니다. OpenSSH의 최신 버전은 Ed25519 키를 선호하며 그 이전에는 ECDSA 키를 선호합니다. 그러나 OpenSSH에는 호스트 키를 사용하기 위한 특별한 구성이 없고 호스트 파일에 하나 이상의 호스트 키가 알려진 경우 기본 클라이언트 알고리즘을 재정의하여 키를 알고 있는 호스트 키를 선호한다는 특별한 규칙이 있습니다. 즉, 서버가 새 호스트 키를 추가하면 사용자에게 호스트 키 경고가 표시되지 않습니다.
앞에서 언급했듯이 일반적으로 Ed25519 및 ECDSA 키가 선호됩니다. 그러나 OpenSSH는 최근 ssh-rsa
RSA 및 SHA-1(서명 알고리즘, 안전하지 않음) 자동 사용에 대한 지원을 중단했지만 여전히 RSA 및 SHA-2( rsa-sha2-256
및 SHA-2 rsa-sha2-512
)를 지원합니다. 때때로 사람들은 알려진 보안 위험에도 불구하고 구성에서 알고리즘을 다시 활성화하기로 선택하고 ssh-rsa
사람들이 사용하는 일반적인 패턴으로 인해 해당 알고리즘이 목록의 상위에 놓이게 됩니다. 따라서 이 시스템에서는 ~/.ssh/config
이러한 구성이 활성화되거나 /etc/ssh/ssh_config
RSA 키가 선호되도록 할 수 있습니다.
답변2
당신은 선택할 수 있습니다비밀번호존재하다 sshd_config
. 사용량이 많거나 오래된 서버에서는 관리자가 CPU 사용량이 적은 암호화 제품군을 제공할 수 있습니다. 서버와 클라이언트는 궁극적으로 둘 다 지원하는 기술에 동의해야 하기 때문에 웹사이트와 각 클라이언트 브라우저에 대한 연결을 보호하는 협상에서도 비슷한 일이 발생합니다. 따라서 사용자는 어느 정도 영향력을 갖고 있습니다( ssh_config
).
/etc/ssh/sshd_config
보고 싶다면 서버에 있습니다.
다음을 사용하여 서버를 조사할 수 있습니다.SSH 키 스캔. 이봐:https://serverfault.com/questions/934072/how-to-view-ecdsa-host-key-of-a-server