OS X Mavericks에서 비밀번호로 보호 된 SSH 키를 잠금 해제 할 수 없습니다


18

방금 OSX 10.9로 업그레이드했으며 공개 키 인증으로 SSH 연결을 시도 할 때 SSH 키 비밀번호를 묻는 프롬프트가 나타납니다.

처음에는 업그레이드로 인해 키 체인이 일부 비밀번호를 잊어 버렸다고 생각했기 때문에 다시 입력했습니다. 프롬프트가 계속 다시 나타나기 때문에 그 원인이 아니었을 것입니다.

나는 먼저 잘못된 암호를 사용하고 있지만 다음 명령을 사용하는 동안

$ ssh-keygen -vvv -y -f id_rsa >| id_rsa.pub
debug3: Incorrect RSA1 identifier
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase:
debug3: Incorrect RSA1 identifier
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
load failed

... 작동하지 않습니다! openssl을 사용하려고하면 :

$ openssl rsa -in id_rsa -text
Enter pass phrase for id_rsa:
Private-Key: (2048 bit)
modulus:
    00:...

개인 키가 올바르게 해독되고 모든 정보가 인쇄됩니다.

매버릭스로의 업그레이드는 어떻게 되었습니까? 개인 키를 사용 가능한 상태로 되돌리려면 어떻게해야합니까?

답변:


22

분명히 내 컴퓨터에서 사용했던 개인 키는 오래된 키였습니다. 새 키를 생성하면 내 키에 개인 키 파일에 추가 된 암호화 정보가 포함되지 않았습니다.

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-...

이 문제를 해결하기 위해 openssl로 키를 해독했습니다.

$ cd ~/.ssh
$ cp id_rsa id_rsa.bck
$ openssl rsa -in id_rsa -out id_rsa

... 그런 다음 다시 암호화하십시오.

$ openssl rsa -in id_rsa -aes256 -out id_rsa
$ chmod 0600 id_rsa

경우에 따라 공개 키도 다시 생성하십시오.

$ ssh-keygen -y -f id_rsa > id_rsa.pub

3

나는 같은 문제가 있었다. .ssh / authorized_keys2를 .ssh / authorized_keys로 이동하여 해결했습니다.

/ etc / sshd_config 파일에는 다음 행이 명시 적으로 포함되어 있습니다.

\# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
\# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile  .ssh/authorized_keys

이것은 이전 macosx 버전에서 변경된 것입니까?


1
이 문제도 다릅니다. 내 경우에는 내가 해독 할 수 없습니다 개인 키를.
GaretJax

2

여기에서도 같은 문제가 있습니다. 제 열쇠는 같은 행동을 보여줍니다.

이 블로그 게시물로 문제를 추적했습니다. 보안을 높이기 위해이 기술에서 설명한 방식으로 ssh-key를 수정했으며 Mountain Lion에서 작동하지 않았습니다. http://martin.kleppmann.com/2013/05/24/improving-security-of-ssh-private-keys.html

나는 애플이 openssh로 뭔가를 바꾸었고 "새로운"버전은 더 새로운 PKCS # 8 형식을 읽을 수 없다고 가정한다.

내 매버릭스 OpenSSH 버전 : OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011

다른 Mac이 없으므로 Mountain Lion 버전과 비교할 수 없습니다.


/usr/bin/ssh -VOpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011내 10.8.0 VM에 인쇄합니다 .
Lri

조사, 시간이 있다면 pkcs # 8 키를 사용하면 "ssh-keygen -vvv -y -f id_rsa"가 무엇을 표시하는지 확인할 수 있습니까?
tripplet

동일한 링크를 통해 파생 된 내 pkcs # 8 키는 다음과 같이
cbowns

2

brew openssl 및 openssh를 사용하면 Mavericks의 PCKS # 8 문제가 해결됩니다.

brew update
brew install openssl
brew link openssl --force
brew install openssh

# confirm correct bins are being used
# both should be located in /usr/local/bin
which openssl
which openssh

# add key back to keychain
ssh-add ~/.ssh/id_rsa

openssl을 강제로 연결하면 Mavricks에서 무언가가 깨지는 지 확실하지 않습니다. 지금까지 어떤 문제도 발견하지 못했습니다.


0

간단히 다음을 수행하여이 문제를 해결할 수있었습니다.

cd ~/.ssh
mv known_hosts known_hosts.old

이제 가서 연결하십시오. 표준 질문에 지문 유형을 추가하라는 메시지가 표시되면 예.


그러나 지문을 확인하는 것을 잊지 마십시오!
zigg

1
이것은 내가 묻는 것과는 다른 문제입니다. 알려진 호스트 파일은 여기서 발생하는 문제 (개인 키의 암호 해독)와 아무런 관련이 없습니다.
GaretJax

0

이 문제가 발생했습니다. 암호를 지정하려고 시도하면 제대로 작동 할 수있었습니다.

Linux에서 키 페어를 생성하려고 할 때 다음을 사용하십시오.

ssh-keygen -t rsa -Z aes256

OSX에서 ssh가 암호 aes256을 사용하는 공개 키를 올바르게 인식 할 수 있습니다 (여기서는 10.12.1 임).


0

PuTTY 키를 OpenSSL OS X 키로 변환 할 수 있습니다.

puttygen putty.ppk -O private-openssh -o osx.key

암호를 입력하면 완료됩니다.

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