key_load_public: 잘못된 형식
PuTTY Key Generator를 사용하여 암호가 있는 4096비트 RSA-2 키를 생성했습니다.
.ppk와 openSSL 형식의 공개 키를 저장합니다.퍼티 형식 공개 키가 작동하지 않습니다.
어쨌든, 나의 실수는 다음과 같습니다.
$ ssh -T git@github.com
key_load_public: invalid format
Enter passphrase for key '/c/Users/Dan/.ssh/id_rsa':
Hi Dan! You've successfully authenticated, but GitHub does not provide shell access.
뭐가 문제야?
저는 키를 로드하기 위해 미인대회를 사용하고, SSH 연결을 시도하기 위해 깃배시를 사용합니다.나도 GitHub에 키를 로드했는데, 내가 뭘 잘못하고 있는지 잘 모르겠어요.
GitHub에서 새 줄을 추가하고 새 줄을 추가하지 않았습니다.
롤랜드가 그들의 대답에서 언급했듯이, 그것은 경고입니다.ssh-agent
공용 키의 형식을 이해하지 못하므로 공용 키가 로컬에서 사용되지 않습니다.
하지만, 저는 경고가 왜 거기에 있는지 자세히 설명하고 대답할 수도 있습니다.즉, PuTTY 키 생성기는 프로그램에서 수행하는 작업에 따라 두 가지 다른 공개 키 형식을 생성합니다.
참고: 설명하는 동안 사용/생성할 키 파일의 이름이 지정됩니다.id_rsa
적절한 내선 번호를 사용합니다.는 ""-"로 됩니다.~/.ssh/
필요에 따라 이러한 세부 정보를 조정합니다.
포맷
SSH-2
공개 키 저장 버튼을 사용하여 PuTTY 키 생성기를 사용하여 키를 저장하면 RFC 4716에서 정의한 형식으로 저장됩니다.
예:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "github-example-key"
AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYF
i2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcp
pY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3
oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEA
ip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9
tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw==
---- END SSH2 PUBLIC KEY ----
OpenSSH
일반적인 생각과는 달리, 이 형식은 생성기에 의해 저장되지 않습니다.그러나 "OpenSSH authorized_keys 파일에 붙여넣기 위한 공용 키"라는 텍스트 상자에 생성되어 표시됩니다.파일로 저장하려면 텍스트 상자에서 수동으로 복사하여 새 텍스트 파일에 붙여넣어야 합니다.
위에 표시된 키의 경우 다음과 같습니다.
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw== github-example-key
키의형단순니다합은식▁simply입니다.ssh-rsa <signature> <comment>
SSH-2 형식의 파일을 재정렬하여 만들 수 있습니다.
공용 키 재생성 중
당신이 경우하는용을 한다면.ssh-agent
당은또접수있높습가니다이성능을신할근한▁to다▁also▁have높▁access에 접근할 수 있을 입니다.ssh-keygen
.
려 있 인 SSH Private Key (SSH 키)가 (id_rsa
"", "Open"을 할 수 .다음을 사용하는 SSH 공용 키 파일:
ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub
키PUTTY 개인 키)만,id_rsa.ppk
파일), 먼저 변환해야 합니다.
- PutTTY 키 생성기 열기
- 메뉴 모음에서 "파일" > "개인 키 로드"를 클릭합니다.
- 다음 항목을 선택
id_rsa.ppk
- 메뉴 모음에서 "Conversions" > "Export Open"을 클릭합니다.SSH 키"
- 파일을 다음으로 저장
id_rsa
(장자없음확없)
제오되었니으이이 SSH Key가 인할있다를 할 수 .ssh-keygen
위와 같은 도구를 사용하여 키를 조작할 수 있습니다.
보너스: PKCS#1 PEM 인코딩 공개 키 형식
저는 솔직히 이 열쇠가 필요 없어서 어디에 쓰이는지 모르겠어요.하지만 저는 제 노트에 그것을 가지고 있습니다. 제가 지난 몇 년간 수집한 것들이죠. 그리고 저는 건강에 좋은 것들을 위해 여기에 포함시킬 것입니다.파일은 다음과 같습니다.
-----BEGIN RSA PUBLIC KEY-----
MIIBCAKCAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5Ew
gnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8D
Gm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48
ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8
hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D
6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElwIBJQ==
-----END RSA PUBLIC KEY-----
이 파일은 열기를 사용하여 생성할 수 있습니다.SSH 개인 키(위의 "공개 키 재생성"에서 생성됨)는 다음을 사용합니다.
ssh-keygen -f ~/.ssh/id_rsa -y -e -m pem > ~/.ssh/id_rsa.pem
또는 열기를 사용할 수 있습니다.SSH 공용 키 사용:
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m pem > ~/.ssh/id_rsa.pem
##참고 자료:##
퍼티젠 툴을 설치하고 사용할 수 있다면 간단한 해결책이 있습니다.다음은 단계입니다.개인 키의 암호 구문이 있어야 합니다.
1단계: 최신 퍼티젠 다운로드 및 퍼티젠 열기
2단계: 기존 개인 키 파일을 로드합니다(아래 이미지 참조).
3단계: 메시지가 나타나면 키에 대한 암호를 입력하고 ok를 누릅니다.
4단계: 아래 이미지에 표시된 것처럼 "변환" 메뉴 탭을 선택하고 "열기 내보내기"를 선택합니다.SSH 키"
새 개인 키 파일을 원하는 위치에 저장하고 그에 따라 사용합니다.
TL;DR: 또한 다음 사항을 확인합니다.id_rsa.pub
ASCII / UTF-8로 표시됩니다.
저도 같은 문제가 있었지만 텍스트 인코딩으로 인해 수락된 답변만으로는 작동하지 않았습니다. 이는 놓치기 쉬운 추가적인 문제였습니다.
실행할 때
ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub
PowerShell에서는을 윈도우즈 PowerShell에 합니다.id_rsa.pub
UTF-16 LE BOM 인코딩, UTF-8이 아닙니다.이는 PowerShell을 사용하여 BOM 없이 UTF-8로 파일을 작성하는 방법에서 설명한 일부 PowerShell 설치의 속성입니다.OpenSSH는 이전 텍스트 인코딩을 인식하지 못하고 동일한 오류를 생성합니다.
key_load_public: invalid format
의출을복붙기의 을 복사하여 ssh-keygen -f ~/.ssh/id_rsa -y
텍스트 편집기로 전환하는 것이 이 문제를 해결하는 가장 간단한 방법입니다.
추신. 이것은 받아들여진 답변에 추가될 수도 있지만, 저는 아직 여기에 언급할 업보가 충분하지 않습니다.
클립보드로 공용 키를 복사하여 붙여넣는 경우 새 줄이 포함된 공용 키 문자열이 끊어질 수 있습니다.
공용 키 문자열이 한 줄로 구성되었는지 확인합니다.
다음 명령을 사용하여 id_rsa 및 id_rsa.pub 파일을 생성합니다.
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
그러면:
1) Place file in id_rsa.pub into ~/.ssh/id_rsa.pub
2) sudo chmod 600 ~/.ssh/id_rsa.pub
3) Place file id_rsa into ~/.ssh/id_rsa
Now ~/.ssh contains two files..~/.ssh/id_rsa.pub and ~/.ssh/id_rsa
4) ssh-add ~/.ssh/id_rsa
5) Enter the passphrase entered during creation of id_rsa
Output :
Identity added: /home/jay/.ssh/id_rsa (/home/jay/.ssh/id_rsa)
이제 사용자 이름 암호를 입력하지 않고 풀을 누를 수 있습니다.
는 것 같습니다.ssh
공용 키를 읽을 수 없습니다.하지만 그것은 중요하지 않다.
공용 키를 github에 업로드하지만 개인 키를 사용하여 인증합니다.예: 의 FILES 섹션 참조ssh(1)
.
오류가 오해의 소지가 있습니다. "라고 표시됩니다.pubkey
개인 키 파일을 가리키는 동안~/.ssh/id_rsa
.
제 경우에는 (볼트에서 복원하지 않았기 때문에) 단순히 공용 키가 누락된 것입니다.
세부 사항
는 배를건너했습다니곤을 배포하는 것을 건너뛰곤 .~/.ssh/id_rsa.pub
자동화된 스크립트를 사용합니다.
든모.ssh
사용법은 효과가 있었지만, 오류는 제가 혼란을 생각하게 만들었습니다.
전혀 아닙니다.strace
트리거가 실제로 파일임을 확인하는 데 도움이 되었습니다.
strace ssh example.com
...
openat(AT_FDCWD, "/home/uvsmtid/.ssh/id_rsa.pub", O_RDONLY) = -1 ENOENT (No such file or directory)
...
write(2, "load pubkey \"/home/uvsmtid/.ssh/"..., 57) = 57
load pubkey "/home/uvsmtid/.ssh/id_rsa": invalid format
Git-hub에서 SSH-KEY 추가: Windows
cmd: cmd " "에합니다.ssh-keygen -t ed25519 -C "your-email-id"
에 가다C:\Users\your-name\.ssh
에서 다음과 같은 수 .id_ed25519.pub
해당 파일을 열고 복사한 후 github->setting->keys->ssh-key->new SSH Key로 이동합니다.
복사한 키를 붙여넣습니다.
됐습니다.
개인 키를 직접 저장하는 대신 변환으로 이동하고 SSH 키 내보내기.같은 문제가 있었고 이것은 나에게 효과가 있었습니다.
SSH가 내장된 Windows 10을 사용하는 경우 2020년 8월 현재 25519 키만 지원합니다.당신은 받을 것입니다.key_load_public: invalid format
예: RSA 키를 사용하는 경우 오류가 발생합니다.
이 GitHub 문제에 따르면 2020년 언젠가 Windows Update를 통해 해결될 것입니다.따라서 한 가지 해결책은 업데이트가 제공될 때까지 기다리는 것입니다.
기다릴 수 없다면 새로운 ed25519 키를 생성하는 것이 좋습니다.
> ssh-keygen -o -a 100 -t ed25519
예를 들어 github과 함께 사용할 수 있지만 일부 이전 시스템에서는 이 최신 형식을 지원하지 않을 수 있습니다.
키를 생성한 후 아래 기능 중 하나를 사용하는 경우 업데이트하는 것을 잊지 마십시오!
~\.ssh\config
여전히 이전 키를 가리킬 수 있습니다.- ssh-agent " 를 통해 에 새 합니다.
ssh-add
저도 같은 경고를 받았습니다.그것은 매우 오래된 열쇠였습니다.현재 OpenSSH 7에서 키를 재생성했는데 오류가 사라졌습니다.
그래서 업데이트 후에도 같은 문제가 발생했습니다.는 PEM을 .key_file
없이 장없이간추가히를 추가하는 입니다..pem
제 문제를 해결했습니다.이제 그 파일은key_file.pem
.
@uvsmtid 의▁@▁finally다uv▁the▁@▁into▁me▁right▁post▁leaduv니습이▁your었끌sm로.direction
키 파일을 변경만 하면 .id_rsa.pub
잘못된 형식에 대해 잔소리를 하면서도 작동하는 문제를 해결했습니다.개인 키 파일에서 pub 키를 추출할 수 있기 때문에 파일이 실제로 필요하지는 않습니다.id_rsa
어쨌든.
저도 비슷한 오류가 있었습니다.Load key "/root/.ssh/id_rsa": invalid format
내가 노력했을 때
RUN echo "$ssh_prv_key" > /root/.ssh/id_rsa && chmod 600 /root/.ssh/id_rsa
이로 인해 다음과 같은 오류가 발생했습니다.identity file /root/.ssh/id_rsa type -1 invalid format
그리고.read_passphrase: can't open /dev/tty
.
올바른 방법은 사용하는 것입니다.
COPY id_rsa /root/.ssh/id_rsa
RUN chmod 600 /root/.ssh/id_rsa
솔루션은 개인 키의 형식이 잘못 지정되어 있습니다. 많은 줄이 아닌 한 줄로 전달되었으며, 시작이나 끝에 잊어버린 "-"와 같은 형식 문제가 있거나 줄 끝에 새 줄 형식이 없거나 줄 끝에 추가 문자가 있는 등 잘못된 형식 문제가 있을 수 있습니다.
도커 파일: 암호 없는 개인 키로 repo 복제를 참조하십시오. 오류: "authentication agent" 또는 "read_passphrase: canot open /dev/tty"에서 도커 파일의 ssh-agent에 개인 키를 추가하는 것이 주요 아이디어이며 Gitlab CI/Docker: ssh-add는 계속해서 암호를 요청합니다.
IDFile로 사용하는 오류가 발생했습니다.IdentityFile ~/.ssh/KEYNAME.pub
에 IdentityFile ~/.ssh/KEYNAME
방식으로 .나는 그것을 확인했습니다.ssh-keygen -l -f .ssh/KEYNAME.pub
.
- V ssh - VΩOpenSSH_8.2p1 Ubuntu-4ubuntu0.5, OpenSSL 1.1.1f 31 Mar 2020
.
언급URL : https://stackoverflow.com/questions/42863913/key-load-public-invalid-format
'programing' 카테고리의 다른 글
도커에서 실행 중/중지된 컨테이너의 전체 명령 보기 (0) | 2023.08.30 |
---|---|
Objective-C에서 Swift 구조체를 사용하는 방법 (0) | 2023.08.30 |
MySQL에서 INT(1)와 TINYINT(1)를 사용하는 것에 차이가 있습니까? (0) | 2023.08.30 |
요소(기본 키)가 데이터베이스의 다른 위치에 포함되어 있는지 확인합니다. (0) | 2023.08.30 |
jQuery UI 대화 상자에서 콘텐츠를 동적으로 로드하는 방법 (0) | 2023.08.30 |