
PuTTY에서 공개 키와 비공개 키 두 개를 생성했습니다. Windows에서 이 소프트웨어를 사용하면 평소처럼 서버에 연결할 수 있습니다.
그런 다음 내 우분투 컴퓨터(21.04)에서 해당 파일을 복사하려고 시도하고 개인 키 로드에 로그인했습니다(퍼티를 열고 user@hostname
SSH>Auth에서 개인 키를 쓴 다음 로드). 이 오류는 서버에 다음과 같이 표시됩니다.
Unable to load key file '~/private_key.ppk' (PuTTY key format too new).
그리고 다음과 같은 창이 나타납니다.
No supported authentication methods available (server sent: publickey)
따라서 첫 번째 오류에서 알 수 있듯이 PuTTYgen을 통해 개인 키를 openssh PEM 형식으로 변환한 다음 해당 파일을 SSH/Auth에 로드하면 '지원되지 않음' 메시지가 이전에 남아 있습니다.
Unable to use key file '~/private_key_openssh' (OpenSSH SSH-2 private key (old PEM format) ).
Ubuntu에서 이 키를 사용할 수 있는 방법이 있습니까? 아마도 openssh를 통해서일까요?
유용한 정보:
- 새로 설치된 Ubuntu 버전
- 퍼티 0.74
시도하는 동안의 출력ssh -i ~/.ssh/private_key.ppk user@hostname
로드 키 "~/.ssh/private_key.ppk": 잘못된 형식 user@hostname: 권한이 거부되었습니다(공개 키).
답변1
Adonis와 Thomas의 답변/댓글은 기본적으로 정확하지만 실제로 작동하는 데 필요한 세부 정보가 부족합니다. 댓글을 달기에는 평판이 충분하지 않으므로 이 답변을 통해 세부 정보를 추가하겠습니다.
Putty PPK를 OpenSSH 형식으로 내보냅니다.
이렇게 하려면 PuttyGen을 열고 개인 키를 로드한 다음 "Conversions" 메뉴로 이동하여 "Export OpenSSH Key"를 선택합니다.
Ubuntu(또는 파생 상품)에서 OpenSSH 키 사용
SSH에 직접 사용하는 경우 Adonis가 언급한 대로 사용할 수 있습니다. 그러나 소스 제어 시스템과 함께 사용하기 위해 간접적으로 필요한 경우에는 어떻게 해야 합니까?
Linux의 ~/.ssh 폴더에 복사하세요. 이전에 Linux 상자에서 SSH를 사용한 적이 없다면 이 폴더를 만들어야 할 수도 있습니다. .ssh 디렉토리를 생성할 때 chmod 0700 ~/.ssh
ssh 도구가 해당 디렉토리가 실제로 사용자의 개인 정보라고 믿도록 해야 합니다.
Windows에서 키 파일을 복사한 경우 이제 ~/.ssh 폴더에 대한 터미널을 열고 chmod 400 [private key file name]
. 이는 기본 권한(Windows에서 복사할 때)이 770이기 때문에 필요합니다. SSH 유틸리티는 이것이 너무 허용적이어서 키를 무시할 것이라고 알려줄 것입니다. 불행히도 문제를 해결하는 방법을 직접적으로 알려주지는 않지만 "나만 읽을 수 있고 다른 사람은 사용할 수 없음"을 의미하는 400 권한이 문제를 해결합니다.
이제 터미널에서 eval $(ssh-agent)
. 그러면 로컬 SSH 에이전트가 열리고 소스 제어와 같은 다른 프로그램에서 선택할 수 있는 키를 추가할 수 있습니다.
마지막으로 ssh-add ~/.ssh/[private file key name]
. 권한 설정을 기억하는 한 작동해야 하며 git/hg/etc를 사용할 수 있어야 합니다. SSH 키로.
답변2
연결이 완료되었습니다!
Thomas Ward가 제안한 대로 Windows의 PuTTYgen에 private_key 파일을 로드하고 공개 키를 파일에 복사하는 것이 authorized-keys
첫 번째 단계로 작동했습니다.
또한, private_key 파일을 첫 번째 옵션인 openssh 형식으로 private_OpenSSH 파일로 내보낸 후 ~/.ssh 디렉터리로 이동하여 다음을 사용하여 권한을 변경합니다.
chmod 400 private_OpenSSH
마침내 다음과 연결할 수 있게 되었습니다.
ssh -i ~/private_OpenSSH user@hostname