2013-05-02 3 views
13

사용자에게 공용 "id_rsa.pub"ssh 키를 입력하도록 요청 했으므로 "/home/theiraccount/.ssh/authorized_keys"에 넣으므로 SSH로 서버에 로그인 할 수 있습니다. 나는이 과정을 자동화하고 싶다.상태 점검 SSH 공개 키?

어쨌든 그들은 (프로그래밍 방식으로 또는 다른 방법으로) 나에게 줄 문자열을 확인하는 방법이 있습니까? 나는 sshd가 텍스트를 읽을 수 있는지 그리고 실제로 유효한 공개 키처럼 보이는지 (그리고 손상되지 않았 음) 확인하고 싶습니까?

다른 말로하면 id_rsa.pub 파일의 형식은 무엇입니까? 누군가 필드에 입력하면 양식 처리기 스크립트에서 작성할 수있는 내용이 완전하고 올바른지 확인할 수 있습니까? 당신이 그것을 통과하지 않는 경우

+0

다음은 키를 검증하는 Python으로 작성된 함수에 대한 링크입니다. https://github.com/jirutka/ssh-ldap-pubkey/blob/master/bin/ssh-ldap-pubkey#L264 기본적인 유효성 검사에 관심이있는 알고리즘은 기본적으로 다음과 같습니다. 1. 내용 분할, 첫 번째 요소는'kt' = 키 유형, 두 번째 요소는 키 문자열입니다. 기본 64 디코드 키 문자열 3. 처음 4 바이트는 key_type 문자열의 길이에 해당하는 정수형'ktl'입니다. 4. 4부터 4까지의 문자를 가져옵니다. 디코딩 된 문자열의 'ktl'5. 키 유형 'kt'과 일치해야합니다. –

답변

28

ssh-keygen이 실패합니다 키 파일의 지문을 계산하는 데 사용할 수있는 키

ssh-keygen -l -f id_rsa.pub 

또 다른 가능성은 ssh-vulnkey 것, 즉 검사의 장점을 것 동시에 알려진 손상된 키의 블랙리스트에 대한 키.

+0

은 암호가있는 키에는 작동하지 않습니다. – vidstige

+0

@vidstige 암호로 보호 된 _ 공용 키? 왜? 공개 키는 암호로 보호 될 필요가 없으며 개인 키가 있어야하며 다른 사람에게 공개하지 않아야합니다. 워크 플로우에서 개인 키 확인이 필요합니까? – mata