키 쌍 생성을 사용할 때 필요한 서명 유형을 다음과 같이 지정할 ssh-keygen
수 있습니다 . SSH 개인 키의 서명 유형이 무엇인지 알고 싶습니다.-t
ssh-keygen -t ssh-rsa
불변, 일단 키 쌍이 생성되면 어떻게 될까요?
변경할 수 있는 경우 서명 유형을 변경하는 데 어떤 도구를 사용할 수 있습니까? 어떻게?
ssh-rsa
내 이전 키 중 하나가 서명 유형을 사용하고 ssh-rsa
서명 알고리즘이 이제 더 이상 사용되지 않기 때문에 이 질문을 드리는 것입니다 .
답변1
일반 SSH 키 쌍 만들기를 사용하는 경우 ssh-keygen -t rsa
키에는 서명이 전혀 포함되지 않습니다. 이는 이전과 마찬가지로 실제로 RSA 키 쌍일 뿐이며 다른 것은 없습니다.SSH 키에는 서명 유형이 없습니다. SSH 연결에는 서명 유형이 있습니다.
이러한 키의 경우 연결 양쪽에서 최신 서명 알고리즘을 지원할 경우 충분히 최신 SSH 버전이 자동으로 사용되거나 rsa-sha2-512
서명 됩니다. rsa-sha2-256
SSH 키 인증에서 서명은 임시적이며 연결이 협상되는 동안에만 생성된 후 삭제됩니다. 그래서,SSH용 기존 RSA 키를 변경할 필요가 없습니다.새로운 서명을 사용하세요.
(실행하면 ssh-keygen -f id_rsa -l
일반적으로 출력에 "SHA256"이 표시됩니다. 이는 SHA256 알고리즘이 생성에 사용되었음을 의미합니다.키 지문, 이는 키 자체에 저장되지 않지만 요청 시 계산됩니다. 를 사용하면 ssh-keygen -f id_rsa -l -E md5
동일한 키에서 레거시 MD5 지문을 계산할 수 있습니다. )
하지만 중앙 집중식 관리를 사용하는 경우SSH 인증서즉, 유사한 파일이 있는 경우 id_rsa-cert.pub
해당 파일에 장기 서명이 포함됩니다. 더 이상 사용되지 않는 서명 알고리즘을 제거하려면 조직의 자체 SSH 키 인증 기관에서 인증서를 재발급해야 할 가능성이 높습니다.
기존 SSH 공개 키의 복사본을 인증 기관에 제공하면(아직 파일에 없는 경우) 다음이 실행됩니다.
ssh-keygen -s /path/to/ca_key -I key_id /path/to/user_key.pub
인증서가 처음 발급되었을 때와 동일합니다.
/path/to/user_key-cert.pub
이 명령은 CA가 최신 알고리즘을 사용하는 경우 기본적으로 ssh-keygen
최신 알고리즘을 사용하여 CA 서명을 포함 하는 새 파일을 생성합니다 .rsa-sha2-512
key_id
이전과 동일한 개인 키를 계속 사용하지만 재발급된 인증서(기본적으로 선택적 만료 날짜 및 보장된 CA 정의 문자열 과 같은 일부 추가 관리 기능이 포함된 중앙 집중식 공개 키의 인증 사본)를 배포해야 합니다. 이 인증서가 인증에 사용될 때마다 기록됩니다.
물론 CA는 인증서를 재발급하기 위해 이전에 인증된 SSH 공개 키 사본을 허용할지 여부를 결정할 수 있습니다. 그 동안 새 개인 키를 생성하도록 요청할 수 있지만 이는 기술의 문제가 아니라 정책의 문제입니다.
답변2
내 생각엔 넌 할 수 없을 것 같아. RSA 키와 DSA 키는 다르게 생성됩니다. 그러면 이러한 알고리즘 중 하나에 대해 지정된 키 쌍이 다른 알고리즘에 대한 키 쌍이 아닙니다.
RSA의 강점이 걱정된다면 동일한 키 쌍을 공유하는 모든 알고리즘에 대해 걱정해야 한다고 생각합니다.
그런 다음 할 수 있는 최선의 방법은 키 쌍을 재생성하고 공개 키를 다시 배포하는 것입니다(전환할 때까지 RSA 보호 scp를 통해 이 작업을 수행할 수 있습니다).