openssh 키와 퍼티 키의 차이점은 무엇입니까?


48

나는 것으로 나타났습니다 ssh-keygen( "ssh를"패키지)에서 서로 다른 키를 생성합니다 puttygen( "퍼티"패키지).

ssh-keygen일부 ssh-server 로 공개 및 개인 키를 만들면 내 키를 수락하지 않습니다. puttygen하나의 서버로 키를 만들면 키를 수락합니다.

리눅스 리포지토리가 일반적인 솔루션 (패키지)을 제안하지 않는 이유는 무엇입니까? 퍼티와 함께 ​​작동하는 키를 만드는 또 다른 패키지 ssh-3.2.9.1 을 발견했습니다 . 그러나 SSH에 편리한 솔루션이없는 이유는 무엇입니까?


1
우선 PuTTYGen은 명시 적으로 키 변환을 제공 합니다. 따라서 OpenSSH와 PuTTY가 키 를 저장 하는 데 사용하는 기본 형식 은 다릅니다. 그러나 지원되는 알고리즘은 호환됩니다. 내가 추측 할 수있는 것은 PuTTYGen에서 생성 된 키에 대해 비트 수 (예 : DSA 1024 비트 를 필요하는 것처럼 보임 )를 제공하거나 RSA-1과 같은 것을 선택 했을 수있는 펑키 값을 필드에 입력했다는 것입니다. 요즘에는 대부분의 서버가 비활성화되어 있습니다. 불행히도이 질문에는 실제로 시도하고 예상 한 내용이 나와 있지 않습니다.
0xC0000022L

답변:


47

OpenSSH는 사실상 SSH 프로토콜의 표준 구현입니다. PuTTY와 OpenSSH가 다른 경우 PuTTY는 호환되지 않는 것입니다.

ssh-keygen기본 옵션을 사용하여 OpenSSH로 키를 생성하면 거의 모든 서버에서 작동합니다. 이러한 키를 허용하지 않는 서버는 다른 SSH 구현을 사용하거나 이상한 제한적인 방식으로 구성된 골동품입니다. 기본이 아닌 유형의 키는 일부 서버에서 지원되지 않을 수 있습니다. 특히 ECDSA 키를 사용하면 세션 설정이 약간 빨라지지만 최신 버전의 OpenSSH에서만 지원됩니다.

PuTTY는 다른 키 파일 형식을 사용합니다. 자체 형식과 OpenSSH 형식 간에 변환 할 수 있는 도구가 제공됩니다 .ppk.

이 ssh-3.2.9.1은 사용자가 다른 개인 키 형식을 가진 상용 제품 입니다. OpenSSH 대신 사용할 이유가 없으며 호환성이 떨어질 수 있으며 지불이 필요하며 사용 방법에 대한 자습서가 거의 없습니다.


24

대부분의 Linux 배포판은 Linux에서 putty사용할 수 있습니다. puttyLinux쪽에 설치 puttygen하고 .ppk 파일을 일반 ssh 스타일 키 파일 (파일 이름에 .pem이 없어도 PEM 파일이라고 함)로 변환하는 데 사용할 수 있습니다.

puttygen id_dsa.ppk -O private-openssh -o id_dsa

참고 :puttygen ssh 스타일 PEM 파일을로 가져올 수도 있습니다 putty.

PuTTY의 저자는 단순성을 선택 했으므로 putty / ssh 2 키 인증에 사용되는 기본 보안을 구성하는 공개 및 개인 키는 단일 독점 .ppk 파일에 저장됩니다. 일반적으로 이러한 키는 ssh에 의해 2 개의 별도 파일로 유지됩니다.

Linux에서 키 파일은 일반적으로 .ssh 디렉토리에 보관됩니다.

이 스택 오버플로 질문 ( PEM을 PPK 파일 형식으로 변환) 이라는 제목의 변환 프로세스에 대한 개요가 여기에 있습니다.

putty의 저자는 putty사용자 매뉴얼 에서 .ppk 파일 사용에 대한 그의 이론적 근거에 대해서도 논의 합니다. 이에 대해서는 8.2.12 절에서 읽을 수 있습니다.


리눅스가 쓸모없고 취약한 SSH-1을 가지고 있다는 것을 의미합니까 (퍼티를 사용하지 않는 경우)? 그리고 저렴한가요? SSH-1의 취약점에 설명되어 있습니다 위키 백과
YarLinux

어디서 구했는지 잘 모르겠습니다. 아냐 괜찮아 어떤 Linux 버전을 사용하고 있습니까? 어떤 Linux Distro를 사용하고 있습니까? 이 명령을 실행하여 Linux 버전을 찾으십시오 uname -a.. 리눅스 배포판 : lsb_release -a.
slm

우분투 12.04를 사용합니다. SSH-2의 형식이 서로 다른가요? 방금 패키지 이름과 "ssh"라는 명령으로 혼란 스러웠습니다.
YarLinux

내가 참조. 당신이 언급하는 ssh 도구는 일반적으로 openssh라는 패키지의 일부입니다. 이 소프트웨어의 버전은 언급 한 SSH-1 및 SSH-2와 관련이 없습니다. 이 용어 (SSH-1 및 SSH-2)는 작업중인 키 파일 유형을 나타냅니다. openssh의 최신 버전을 사용하는 한이 파일 형식은 문제가되지 않습니다.
slm

세 가지 다른 형식의 키가 있습니까? OpenSSH, ssh.com 및 PuTTY?
YarLinux

12

그들은 둘 다 "SSH 프로토콜의 버전 2를위한 RSA 키 쌍의"를 저장 할 수 있습니다 변환 상호 교환; 그러나 실제 저장된 형식 차이와 관련하여 :

에서 https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/key-formats-natively.html

PuTTY 키 형식의 장점은 다음과 같습니다.

  • 키의 공개 절반은 일반 텍스트로 저장됩니다 . OpenSSH의의 개인 키 형식은 전체 키 파일을 암호화하여 , 클라이언트가 전혀 키와 무엇이든 할 수 전에 암호를 요청하는 수 있도록. 특히 이것은 인증을 위해 서버에 공개 키를 제공 하기 전에 암호를 요구해야 함을 의미 합니다. PuTTY의 형식은 공개 키를 일반 텍스트로 저장하고 개인용 반만 암호화합니다. 즉, 공개 키를 서버에 자동으로 전송하고 서버가 해당 키로 인증을 수락 할 수 있는지 여부를 결정할 수 있으며 실제로 필요한 경우 암호 구.

    OpenSSH가.pub개인 키 파일과 함께 표시되는 경우 이러한 목적으로 파일을 작성하지만 편의상 자주 혼동의 원인이됩니다 (사람들이 개인 키 파일을 교체하고 오래된 파일과 .pub함께 최신 버전을 유지하는 것을 보았습니다. SSH 인증 과정으로 인해 혼란스러워합니다!).
  • 키가 완전히 변조되었습니다. 공개 키를 일반 텍스트로 저장하는 키 형식은 변조 공격에 취약 할 수 있으며,이 키의 공개 절반은 개인 키에 대한 닥터 키 유출 정보로 만든 서명이 수정되도록 수정됩니다. 이러한 이유로 PuTTY의 키 형식에는 암호 문구를 사용하지 않고 키의 공개 및 개인 절반을 다루는 MAC (메시지 인증 코드)이 포함됩니다.따라서 공개 키를 일반 텍스트로 사용할 수있는 편리함을 제공하지만 변조 공격의 시도를 즉시 감지하여 다른 키 형식에서 찾을 수없는 보안과 편리함의 조합을 제공합니다. 부수적 인 이점으로, MAC은 키의 주석도 다루므로 누군가 두 개의 키를 교환하고 주석을 교환 할 경우 발생할 수있는 장난을 방지합니다.

    공개 키 암호화 유지에서 OpenSSH의 접근 힘을또한 이러한 유형의 공격에 대한 보안을 제공하지만 적절한 보호를 제공하는지 확실하지 않습니다. 기밀성을 위해 설계된 암호화는 종종 공격자가 암호화 된 데이터를 유용하게 수정할 수있는 방법을 남깁니다. 진정한 무결성 보호를 위해서는 정확한 전용 MAC을 원합니다.

[ 중점 추가]

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.