Linux에서 .ppk 키를 OpenSSH 키로 변환하는 방법?


188

Windows의 puttygen에서 .ppk를 변환하는 것이 가능하다는 것을 알고 있지만 Linux에서는 어떻게해야합니까? 이게 가능해 ?

답변:


275

퍼티와 함께하십시오.

  • Linux : 패키지 관리자를 사용하여 PuTTY (또는 최소 PuTTY 도구)를 설치하십시오.

    • 우분투 sudo apt-get install putty-tools
    • 데비안 같은 apt-get install putty-tools
    • RPM 기반 yum install putty
    • 젠투 emerge putty
    • 아치 리눅스 sudo pacman -S putty
    • 기타
  • OS X : Homebrew 설치 후 실행brew install putty

홈 폴더와 같은 일부 디렉토리에 키를 배치하십시오. 이제 PPK 키를 SSH 키 쌍으로 변환하십시오.

개인 키 를 생성하려면

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

공개 키 를 생성하려면 다음을 수행하십시오 .

puttygen id_dsa.ppk -O public-openssh -o id_dsa.pub

이 키를 다음으로 이동 ~/.ssh하고 개인 키에 대한 권한이 개인용으로 설정되어 있는지 확인하십시오.

mkdir -p ~/.ssh
mv -i ~/id_dsa* ~/.ssh
chmod 600 ~/.ssh/id_dsa
chmod 666 ~/.ssh/id_dsa.pub

이미 ' git clone '작업 을 수행하려고 시도했다면이 작업을 수행해야 할 수도 있습니다

chmod 666 ~/.ssh/known_hosts

안녕하세요. 이미 .pub을 가지고 있습니다. 공개 키를 다시 만들어야합니다.
Amit Bera

1
Windows에서이 작업을 수행하는 방법을 찾으려면 여기에 "puttygen yourkey.ppk"를 실행 한 다음 변환 메뉴에서 "OpenSSH 키 내보내기"를 선택하여 개인 키를 가져 오십시오.
Ryan Shillington

1
@jous의 솔루션은 공개 키를 변환하는 데 개인 키가 필요하지 않으므로 퍼티를 설치할 필요가 없기 때문에 훨씬 좋습니다.
Tobi

이 키를 ./ssh/config파일 에 추가해야했습니다Host mysite.com Hostname mysite.com IdentityFile ~/.ssh/id_dsa IdentitiesOnly yes
vladkras

일부 타원 곡선 형식 (ECDS 등)은 아직 베타 퍼티 도구에서만 사용할 수 있습니다.
Daniel W.

39
ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
  • -i openssh 형식 이외의 플래그를 가져옵니다.
  • -f 플래그는 입력 파일에서 읽은 것을 의미합니다.

출처 : burnz.wordpress.com 의 블로그 게시물


17
.ppk 파일은 전체 키 페어이므로 위의 명령이나 블로그 게시물에 해당 내용이 적용되지 않는다고 생각합니다.
피터 베커

2
puttygen의 "공개 키 저장"버튼을 사용하면 작동한다고 생각합니다. ssh-keygen은 '.-- BEGIN SSH2 PUBLIC KEY ----'마커가 없기 때문에 실제 .ppk 파일을 이해하지 못합니다. "Public-Lines : .."및 "Private-Lines : .."행 사이의 .ppk 파일에서 공개 키를 찾을 수 있습니다.
jous

1
이것은 공개 키 파일로 저에게 효과적이었습니다. puttygen은 개인 키가 필요한 것 같습니다. 그것은 모든 것이 base-64 부분을 한 줄로 재배 열한 것 같습니다
Jasen

2
나는 변환을 수행 할 것입니다 이유는 ... 이미 공개 키가 어딘가에 저장 한, 인, 개인 키를 포함하지 않는 것
게르트 반 덴 베르그

예, 내가 본 ppk 파일에는 적절한 마커가 있으며 이것은 작동 합니다 .
tylerl

5

개인 키를 가져옵니다.

puttygen에서 .ppk 파일을 엽니 다 :

puttygen ~/.ssh/id_dsa.ppk

openssh로 내보내기 :

변환 → OpenSSH 키 내보내기

공개 키를 얻습니다.

puttygen이 있는 개인 키 이전과 같이 공개 키가 공개 키에 공개 키가 OpenSSH certified_keys 파일에 붙여 넣을 수 있습니다


4

삶을 단순화하기 위해 Docker 컨테이너를 준비했습니다.

docker run --rm \
           --volume=/path/to/file.ppk:/tmp/id_dsa.ppk \
           --volume=/path/to/output:/tmp/out/ \
           czerasz/putty-tools

어디:

  • /path/to/file.ppk -ppk 파일의 로컬 경로
  • /path/to/output -개인 키와 공개 키를 배치해야하는 로컬 경로

1
큰. 이미지를위한 thx! 그러나 그 동안은 --volume=/path/to/file.ppk:/tmp/id.ppk아니지만id_dsa.ppk
pH :
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.