비밀번호 문구를 묻는 SSH 키?


35

공개 / 개인 키 쌍이 있습니다. 그들 중 어느 것도 그들과 관련된 암호문을 가지고 있지 않습니다.

개인 또는 공개를 사용하여 ssh를 시도 할 때마다 (공개 키만 사용해야한다고 확신 할 때) 암호 문구가 쿼리되어 연결할 수 없습니다.

누구 든지이 문제를 해결하는 방법을 알고 있습니까? 명령을 잘못 입력하고 있습니까? ~ / .s2 / key.ppk에 저장된 키를 사용하여 ~ / .ssh / config 파일에 설정 한 서버에 ssh를 시도하고 있습니다 (정확하게 동일한 설정이 다른 서버에서 작동하기 때문에)

또한 puttygen.exe를 사용하여 암호로 새 개인 키를 생성 한 다음 해당 키를 사용하려고 시도했지만 암호를 입력해도 여전히 실패합니다.

답변:


28

우선 암호 문구가있는 개인 키입니다. 원격 서버에 저장된 공개 키에 대해 유효성을 검사합니다.

가장 좋은 추측은 당신이 ppkopenssh와 함께 퍼티 개인 키 ( ) 키 형식 을 사용하려고 시도하는 것이 작동하지 않는다는 것입니다 ... PuTTYgen은 이것이 경우 openssh에 대한 내보내기 옵션을 가지고 있습니다.

ssh-rsa AAAAB3NzaC1y...... etc

또한 ssh하려는 서버가 공개 키를 승인 된 키 파일 ( ~/.ssh/authorized_keys일반적으로) 에 올바르게 저장했다고 가정합니다 .

또 다른 추측은 올바른 키를 선택하지 않았다는 것입니다. 내가 시도 할 것들은 다음과 같습니다.

재설정 키는 패스 문구를 사용하여 ssh-keygen, 다음과 같이 ...

$ ssh-keygen -f ~/.ec2/key.ppk -p

실제로 키에 패스 프레이즈가 없는지 확인합니다.

두 번째로 공개 키를 명시 적으로 지정하여 자세한 출력을 사용하여 연결을 시도합니다.

$ ssh host -i ~/.ec2/key.ppk -vvv

이것은 당신에게 무슨 일이 일어나고 있는지 더 많은 아이디어를 줄 것입니다.


맞습니다. 퍼티에서 작동하는 키에서 퍼티 겐이 생성 한 키입니다. 같은 서버 (cygwin 인스턴스를 호스팅하는 컴퓨터에서)에 퍼티를 넣으면 정확히 같은 키로 잘 작동합니다. cygwin에서 ssh를 통해 연결하려고하면 폭탄이 터집니다. 이 작업을 수행하는 방법이 혼란 스럽습니다.
llaskin 2016 년

6
mrverrall의 요점은 PuTTY 개인 키의 파일 형식이 OpenSSH (cygwin의 ssh 클라이언트)에 사용되는 파일 형식과 동일하지 않다는 것입니다. 따라서 OpenSSH는 데이터의 의미를 알 수 없으므로 개인 키 데이터를 사용하지 못합니다. 그러나 PuTTY에는 "내보내기"옵션이 있으므로 필요한 "PEM"형식으로 데이터를 얻을 수 있습니다.
Phil P

이 오류는 파일이 올바른 형식 인 경우에도 발생합니다. 따라서 수동으로 파일을 만들면 복사 한 후 붙여 넣은 이중 및 삼중 검사.
Daniel Sokolowski

인가 ssh-rsa AAAAB3NzaC1y...... etc에서 OpenSSH의 형식은 오른쪽입니까? 개인 키에이 형식이 있습니다. 헤더의 상태는 다음과 같습니다. PuTTY-User-Key-File-2: ssh-rsa Encryption: none Comment: imported-openssh-key Public-Lines: 6그러나 파일은 id_rsa 파일로 저장됩니다. 이것은 파일 이름이 단지 .ppk 형식 인 것을 의미합니까?id_rsa
alpha_989

다른 형식에 대한 답변을 여기서 찾으십시오. 내 경우에는 파일의 확장자가 없었지만 .ppk여전히 퍼티 형식으로되어있어 모든 종류의 오류가 표시되었지만 혼란 스럽지만 키 형식에 문제가 있다는 직접적인 힌트를주지 못했습니다. : stackoverflow.com/a/44391850/4752883
alpha_989

18

ssh-agent를 실행할 수 있습니다. 토론 은 여기 를 참조 하십시오 .

나를 위해 일한 짧은 버전 (bash) :

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-rnRLi11880/agent.11880; export SSH_AUTH_SOCK;
SSH_AGENT_PID=11881; export SSH_AGENT_PID;
echo Agent pid 11881;

나는 그것이 울리는 3 줄을 가져 와서 그들을 처형했다. 이를 수행하는 또 다른 방법은 -s의 출력을 취하는 것입니다.

$ eval `ssh-agent -s`

그런 다음 자격 증명을 추가했습니다.

$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/me/.ssh/id_rsa: 
Identity added: /home/me/.ssh/id_rsa (/home/me/.ssh/id_rsa)

이제 에이전트가 암호를 입력하지 않고 자격 증명을 제공합니다.

셸에서 ssh-agent가 사라 지므로 시작시 최대한 편의를 위해 스크립트를 작성해야합니다. 내가 공유 링크가 아니라 스크립트를 설명합니다.


4

퍼블릭 키를 설정할 때 암호로 암호 키를 설정했을 수도 있습니다.

puttygen을 사용하지 않았지만 .ssh 디렉토리에서 공개 키를 삭제하거나 이름을 바꾸고 ssh-keygen새 키 를 생성하는 데 사용할 수 있습니다 (암호를 제공하지 않아야 함). 연결하려는 서버의 authorized_keys 파일에 public_key를 공유하십시오.

연결중인 서버의 인증 된 키 파일에서 이전 암호 구 키를 제거해야 할 수도 있습니다.


4

개인 키 id_rsa의 끝에 줄 바꿈이 없는지 확인하십시오. 경우에 따라 줄 바꿈을 추가하면 ssh-keygen이 암호 문구를 요구하게됩니다.

sed  '/^$/d' /path/to/key > id_rsa

테스트:

ssh-keygen -yf id_rsa

2
이건 내 문제 야 -----END RSA PRIVATE KEY-----하나의 세트가없는 키의 암호 문구를 요구 한 후 추가 줄 바꿈 !
edk750

3

확인해야 할 사항은 sshd_config 파일에 StrictModes = yes가있는 경우 $ HOME 디렉토리 또는 $ HOME / .ssh 디렉토리는 그룹 또는 기타에 대해 쓰기 가능해야합니다. 그렇지 않으면 인증이 실패합니다.


1

실수로 ~ / .ssh / id_rsa 파일을 ~ / .ssh / id_rsa.pub 파일로 덮어 쓰는 실수가있었습니다. 그렇게하면 ssh가 암호 문구를 요구하게됩니다.


0

다른 날이 문제에 부딪쳤다. 특히, 한 머신에서 다른 머신으로 프라이빗 AWS 키를 복사 / 붙여 넣기하려고했습니다.

첫 번째 문자 나 마지막 문자를 놓치는 나쁜 습관이 있습니다. 키 텍스트 자체와는 아무 관련이 없더라도 개인 키의 끝에서 모든 하이픈을 가져 오지 않으면 개인 키의 모든 문자를 추가 할 때까지 개인 키의 암호를 입력하라는 메시지가 나타납니다. 복사 한 키 (제 경우에는 키 끝에 단일 하이픈을 추가하는 것을 의미했습니다.)

이것이 가장 좋은 방법은 터미널 창 사이에 복사하여 붙여 넣는 대신 와이어를 통해 텍스트 파일을 SSH하는 것입니다.


0

OSX에서는 다음을 실행할 수있었습니다.

$ ssh-add ~/.ssh/id_rsa Enter passphrase for /Users/me/.ssh/id_rsa: `Identity added: /Users/mikekilmer/.ssh/id_rsa (/Users/mikekilmer/.ssh/id_rsa)

암호는 응용 프로그램> 유틸리티 폴더에있는 키 체인 접근 응용 프로그램에 의해 저장되었습니다. 방금 id_검색 필드에 입력 했습니다.


0

서버에서 로그 파일을보십시오. / var / log / auth 로그 (예 : OpenSSH의 경우 / var / log / authlog, 일부 운영 체제는 Portable OpenSSH를 사용하고 /var/log/auth.log를 사용하는 것을 보았지만)를 참조하여 해당 파일의 끝을 확인하십시오.

내가 본 가장 일반적인 원인은 잘못된 권한입니다 ( TD1의 답변에 언급 된 바와 같이 ). 공개 키 (서버에 저장된)가 올바른 파일에 있지 않거나 키가 주석 처리되었거나 철자가 틀린 사용자 이름.

계정에 암호를 임시로 입력하여 계정에 로그인 할 수 있는지 확인하는 것이 도움이 될 수도 있습니다 (문제 해결을 위해).

로그 파일을 보더라도 신속하게 해결되지 않으면 로그 파일의 특정 세부 정보가 포함 된 새 질문을 게시하는 것이 좋습니다 (보다 일반적인 질문이므로 더 구체적인 지침을 제공 할 수 있음).


0

우리 팀에서는 이런 일이 발생해도 로컬에서는 아무 문제가 없습니다. 사용자의 ssh 키 및 / 또는 액세스가 연결중인 서버 (이 경우 호스팅 플랫폼)에서 올바르게 구성되지 않았습니다. 어떤 이유로 이것은 존재하지 않는 ssh 키에 대한 프롬프트를 트리거합니다.

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