SSH 개인 키 권한이 0600으로 설정되면 비밀번호 대화 상자가 나타납니다.


71

SSH 개인 키를 ~/.ssh/id_rsa설치하고 사용 권한을로 설정했습니다 0600. 를 통해 Terminal.app에서 개인 키를 사용하는 SSH 서버에 연결 ssh하면 대화 상자가 나타나고 id_rsa파일 에 액세스하기 위해 비밀번호를 입력하라는 메시지가 표시 됩니다.

여기에 이미지 설명을 입력하십시오

Interarchy GUI 클라이언트를 사용하여 FTP 서버에 연결할 때 동일한 대화 상자가 표시됩니다.

업데이트 : "키 체인에 비밀번호 기억"을 체크했는지 여부에 관계없이 연결할 때마다이 대화 상자가 나타납니다. 비밀번호 필드에 입력 한 내용에 관계없이 확인 버튼을 클릭하면 두 번 더 나타납니다.

예를 들어이 권한을 완화하면 0640더 이상 비밀번호를 묻는 대화 상자가 표시되지 않지만 ssh다음 오류와 함께 중단됩니다.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
@ 경고 : 보호되지 않은 개인 키 파일! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
'/Users/myusername/.ssh/id_rsa'에 대한 권한 0640이 너무 열려 있습니다.
개인 키 파일은 다른 사람이 액세스 할 수없는 것이 좋습니다.
이 개인 키는 무시됩니다.
잘못된 권한 : 키 무시 : /Users/myusername/.ssh/id_rsa

비밀번호 대화 상자가 매우 성가시다는 것을 알고 SSH가 id_rsa파일 에 액세스 해야하는이 대화 상자를 닫지 않아도되는 방법이 있어야 합니다.

참고 : Mac OS X 10.6.8을 실행하고 있습니다.

답변:


70

해당 디렉토리 id_rsa.pub또는 디렉토리 id_dsa.pub에 있는지 확인하십시오 ~/.ssh.

내가 id_rsa해당하지만 그렇지 않은 경우 id_rsa.pub, Mac OS X은 대화 상자를 계속 띄우고 키 체인의 passowrd를 기억하지 않았습니다.

cd ~/.ssh
ssh-keygen -y -f id_rsa > id_rsa.pub

적절한 공개 키 파일을 생성했습니다.

공개 파일이 이미 있고 (다른 이름으로 이름 바꾸기) 위 명령을 사용하여 공개 키를 다시 생성하면 생성 된 파일과 이전 파일이 동일하지 않은 것을 알 수 있습니다. 어쨌든 이전 버전의 Mac OS X은 Lion이 더 이상 싫어하는 공개 키를 생성하여 다시 생성하여 수정했습니다.

궁금한 점은 키가 정확히 동일하기 때문에 파일에서 키 뒤에 더 이상 "주석"섹션이 없다는 점입니다.


2
이 솔루션은 언뜻보기에는 의미가 없지만 시도해보십시오. 나는 정확히 같은 문제가 있었고 그것을 고쳤다. 나는 항상 내 ssh 키에 암호를 사용하므로 당신도해야합니다.
Alex Recarey

3
이 솔루션은 저에게 효과적이었습니다. 의미가 없지만 작동합니다! (OS X Lion)
bruno077

2
와우, 그것은 전혀 이해가되지 않지만 확실히 내 시스템에서 많은 이상한 행동을 수정했습니다. 감사.
워렌 페나

2
내 인생에서 나는 지금 같은 문제로 며칠 동안 해결책을 찾을 수 없었고 이것이 나를 위해 고쳤다. 이것은 전혀 의미가 없지만 내 문제를 해결했습니다! 고마워요
Danny Englander

세상에 고마워! 나를 위해 일한 (산 사자와 SourceTree 사용) 그 대화는 매우 성가신 일이었습니다.
Sebastian Sastre

91

먼저 실행 ssh-add -K하여 문제가 해결되는지 확인하십시오.

그렇지 않은 경우 :

  • rsa_id.pub 파일을 제거하고 새로운 파일을 재생성했습니다 (~ / .ssh /에 있어야 함).

    ssh-keygen -y -f id_rsa > id_rsa.pub
  • id_rsa 및 id_rsa.pub에 대해 권한이 600으로 설정되었습니다 (~ / .ssh /에 있어야 함).

    chmod 600 id_rsa*
  • 다음 명령을 실행하십시오.

    ssh-add -K

이렇게 한 후에 더 이상 개인 키 암호를 입력하라는 메시지가 표시되지 않았습니다. 이것은 실제로 개인 키 암호를 OS X가 사용할 올바른 키 체인 위치에 넣은 것으로 보입니다.


7
"ssh-add -K"명령을 실행할 때까지 미쳤습니다. OSX가 얼마나 복잡한 지 믿지 않습니다. +1000
eduncan911

4
fwiw, 나는 chmod 600그것이 작동 하기 위해 (644 대신) 필요
kangax

1
644의 개인 키는 부에노가 아닙니다
xtian

15
ssh-add -K내 문제를 해결
Spechal

2
chmod 644가 chmod 600으로 수정 될 때까지 상향 조정하지 않으면 안전하지 않습니다.
Tomáš Kafka

20

내 경우 ssh-add -K에는 속임수를 쓰지 않았으므로 키를 지정해야했습니다.

ssh-add ~/.ssh/id_rsa

어떤이없는 -K옵션은 더 이상. 당신의 해결책은 그것을 고쳤습니다. 왜 내가 이것을해야하는지 궁금합니다. 비밀번호 프롬프트가 없습니다.
DannyRe

감사! OS X Sierra가 마침내 id_rsa 암호를 물었을 때입니다.
Tomáš Kafka

2
FWIW, -K깃발은 시에라 10.12.2에서 나를 위해 일했다
Chris Wagner

네. 확인할 수 있습니다. -K가 존재하며 최신 Sierra에서이 문제를 해결합니다! @nathancahill 잘 했어요.
Matt Komarnicki

17

macOS 10.12의 경우 ssh-add -K재부팅 할 때마다 Sierra 를 실행해야합니다. 이를 피하려면 ~/.ssh/config이 컨텐츠로 작성 하십시오.

Host *
   AddKeysToAgent yes
   UseKeychain yes
   IdentityFile ~/.ssh/id_rsa

Apple은 Technote 2449 를 추가하여 무슨 일이 있었는지 설명합니다.

macOS Sierra 이전에 ssh는 암호 문구를 묻는 대화 상자를 표시하고이를 키 체인에 저장할 수있는 옵션을 제공했습니다. 이 UI는 얼마 전에 사용되지 않아 제거되었습니다.

편집 : 분명히 호스트와 키를 지정할 필요는 없습니다. 이것을 추가하면 충분합니다.

AddKeysToAgent yes
UseKeychain yes

이것이 나를 위해 일한 것입니다. 처음에는 ssh-add -K를 시도했지만 재부팅 할 때까지만 변경 사항이 적용됩니다.
Gandalf458

AddKeysToAgent의 최상위 레벨에 배치해야했습니다 ~/.ssh/config.
Radon Rosborough

12

개인 키의 암호를 어딘가에 입력해야하며 OS X는 기본적으로 ssh-agent를 사용합니다.

ssh-agent를 사용하고 gui 대화 상자를 사용하지 않으려면 ssh-add를 사용하여 에이전트에 암호를 추가 한 다음 평소와 같이 ssh를 추가 할 수 있습니다.

ssh-agent를 사용하지 않고 대신 암호문에 대해 ssh 프롬프트를 표시하려면 SSH_AUTH_SOCK 환경 변수를 설정 해제하십시오.


고마워, 알레 샤 개인 키 암호를 Mac OS X 키 체인에 영구적으로 (단일 세션이 아닌) 저장할 수있는 방법이 있는지 알고 있습니까?
titaniumdecoy

3
터미널에서 'ssh-add -K'를 시도 할 수 있지만 확인란을 선택해도 작동하지 않는 버그가 있으면 작동하지 않을 수 있습니다. 키 체인에 ssh 암호 문구를 저장하지 않기 때문에 이것을 테스트하지 않았습니다.
zzz

ssh-add -K내 비밀번호를 입력하지 않아도 연결되지만 메시지가 계속 표시합니다; 나는 단지 그것을 무시한다.
titaniumdecoy

3
ssh-add -K는 암호를 키 체인에 추가하는 데 사용하는 것입니다. 비밀번호를 입력하지 않으면 키 체인에 비밀번호를 입력 할 수 없습니다.
zzz

1
부록 : Lion 및 Snow Leopard에서 ssh-add -K를 입력하면 대화 상자가 아닌 터미널에 프롬프트가 표시됩니다.
zzz

8

권한을 완화하면 키가 무시됩니다. 이렇게하면 아무것도 얻지 못합니다.

매번 비밀번호를 입력하지 않고 키를 사용하려면 두 가지 옵션이 있습니다.

“내 키 체인에 비밀번호 기억”을 체크하면 매번 비밀번호를 입력 할 필요가 없습니다. 다른 모든 비밀번호와 함께 키 체인에 저장됩니다. 권장되는 옵션입니다.

비밀번호없이 개인 키 파일을 작성할 수 있습니다. 비밀번호로 보호되지 않도록 기존 개인 키 파일을 변경할 수 있습니다 (암호 변경은 키 자체가 아닌 키 파일에만 영향을 미침). 명령 행 ssh -p에서을 실행 하고 기존 비밀번호 문구를 입력 한 다음 새 비밀번호 문구를 비워 두십시오. 빈 암호 문구가 있으면 보안 위험이 있습니다. 개인 키 파일에 액세스 할 수있는 사람 (예 : 백업에 액세스하여)은 즉시 사용할 수 있습니다.


답을 주셔서 감사합니다. "키 체인에 암호 기억"옵션을 확인해도 효과가 없습니다. 다음에 연결할 때 대화 상자가 다시 나타납니다. (비어있는 암호 구를 사용하는 것은 나에게 옵션이 아닙니다.)
titaniumdecoy

3
암호로 보호 된 키를 암호가없는 키로 바꾸라고 제안하는 것은 정말 끔찍한 생각입니다 ...
Schmurfy

5

개인 키를 source ~ / .ssh 디렉토리에 추가하고 ssh-add -K를 입력하여 키 체인에 추가 한 경우 공개 키 내용이 .ssh / authorized_keys에 복사 된 경우 대화 상자가 사라지는 대상 서버의 파일) 파일.

파일, 권한, 위치 및 명령의 까다로운 조합이므로 시간이 걸릴 수 있습니다. 나는 버그에 대한 결론을 서두르지 않을 것입니다.


3

Lion (Mac OS X 10.7)에서 정확히 같은 문제가 있습니다. 버그라고 생각합니다 ... ssh 인증이 비밀번호 인 경우 클라이언트는 공개 키를 먼저 통과합니다. 그러나 다음에 새 ssh 연결이 설정 될 때 비밀번호 인증에 필요하지 않은 키 체인에 비밀번호 문구를 저장하도록 선택하더라도 비밀번호 문구를 다시 묻습니다.


1
나는 또한 이것을 버그로 간주하고 모든 것이 스노우 레오파드와 함께 잘 작동했지만 내 컴퓨터가 절전 모드에서 돌아올 때마다 마지막으로 "메모를 확인"했지만 ssh 키 암호가 다시 묻습니다! 매우 성가신 ...
Schmurfy

3

공개 키를 다시 생성 할 필요가 없습니다. 다음 명령을 간단히 수행 할 수 있습니다 .

chmod 0600 ~/.ssh/id_rsa.pub
ssh-add ~/.ssh/id_rsa

기본적으로 공개 키 파일에 대한 권한을 강화해야하며 OSX 인증 에이전트에 키를 추가해야합니다.


3

최신 버전의 macOS (10.12.2-Sierra)에서는이 문제를 쉽게 해결할 수 있습니다. ~ / .ssh / config를 편집하고 UseKeychain 옵션을 활성화하십시오.

Host *
UseKeychain yes

저장하고 해결하십시오.


2

이 문제는 ssh-agent가 사망했을 때 OS X 10.7.4 시스템에서 발생했습니다. 재부팅으로 문제가 해결되었습니다. (ssh-agent를 다시 시작할 수는 있지만 키 체인이 새로운 ssh-agent 소켓을 집어 올만큼 영리한지 알 수 없습니다.)


이것은 1 시간 동안 그루터기 후에 내 문제가 해결 된 것입니다.
DannyRe

2
  1. ~ / .ssh /가 chmod 700인지 확인하십시오.

  2. ~ / .ssh / id * 파일이 모두 chmod 600인지 확인하십시오.

  3. / Applications / Utilities / Keychain Access.app를 실행하고 키 체인을 복구하십시오.

  4. 로그 아웃. (재부팅은 끔찍한 아이디어가 아닙니다)

  5. 로그인

  6. 문제가 지속되면 기존 ~ / .ssh / id * 파일을 데스크탑으로 옮기고 사용하여 새 키를 생성 ssh-keygen -t dsa -f ~/.ssh/id_dsa -C you@youremail.tld하고 새 키가 더 잘 작동하는지 확인하십시오.

저는 라이온이지만 IIRC Snow Leopard도 같은 방식으로 일했습니다.

ps-빈 ssh 암호 문구 사용을 제안하는 사람은 다른 사람들이 조언을하지 않도록 표지판을 착용해야합니다.


1

공개 키를 재생성해도 효과가없는 것 같거나 (10.8) 새 SSH 키를 생성하지도 않습니다. 예를 들어 로그인 키 체인을 잠근 후 git pull을 실행하면 먼저 로그인 키 체인에서 비밀번호를 검색하려고 시도하는 대신 비밀번호를 요구하는 대화 상자가 나타납니다.

그러나 ssh-agent를 먼저 종료하면 로그인 키 체인 암호를 묻는 메시지가 표시되고 SSH 키 암호를 검색합니다.


안녕하세요,이 질문에 대한 답변이 아닌 별도의 질문처럼 보입니다. 새로운 질문으로 다시 게시 할 수 있습니까?
Scot

1

또 다른 흥미로운 발견은 PEM 파일의 내용을 복사하여 붙여 넣으면 끝 부분에 대시가 누락되었을 수 있습니다. 마지막 줄을 다음과 같이 추가하십시오.

-----END RSA PRIVATE KEY-----

lastpass와 같은 것에서 ssh 키를 붙여 넣을 때 한 줄에 모두 붙여 넣는 것이 비슷합니다. 이것은 나에게 문제가 된 것처럼 보였고 일단 공백의 개인 키를 올바른 형식으로 다시 분할하면 효과가있었습니다.
Cameron Gagnon

1

작동하려면 다음 단계를 수행해야했습니다.

# Change working directory
cd ~/.ssh
# Remove the old public key
rm id_rsa.pub
# Create a new public key
ssh-keygen -y -f id_rsa > id_rsa.pub
# Change permission
chmod 600 id_rsa*
# Add the key to ssh
ssh-add id_rsa
# Then finally test it (I used github)
ssh -i id_rsa.pub git@github.com

마지막 명령은 다음과 같이 출력됩니다 : Hi <user>! You've successfully authenticated, but GitHub does not provide shell access.


0

나는 같은 문제가 있었다. 이 작업을 수행하여 문제를 해결 한 것 같습니다.

1) 이전 id_dsa 및 id_dsa.pub 파일로 이름을 바꾸어 백업합니다.

2) 빈 암호 문구로 새로운 키겐을 실행하십시오.

터미널의 ssh에서 로그인하는 것뿐만 아니라 원격 서버를 모니터링하는 launchctl 기간 작업과 함께 작동합니다.

.bash_profile에 다음이 있기 때문에 터미널에 빠른 기능 authme 기능이 있습니다.

#~/.bash_profile    
function authme {
ssh $1 'cat >>.ssh/authorized_keys' <~/.ssh/id_dsa.pub
}

따라서 빠른 authme remoteserver.com은 새 원격 키를 복사합니다.

버그는 암호가 변환되지 않는 것과 관련이 있다고 생각합니다 (내 오래된 Snow Leopard에는 전혀 없었습니다).

시도해보고 도움이되는지 확인하십시오.

10 분 이상 걸리지 않았습니다. 나는 이것에 대한 다른 언급이 있는지 확인하기 위해 인터넷 검색을 영원히 보냈습니다. 이 사이트는 유일한 사이트였습니다!

오 웨인.


빈 암호를 사용하는 것은 안타깝게도 선택의 여지가 없습니다
titaniumdecoy

0

나는 비슷한 문제가 있었다. 내가 사용하는 개인 키의 형식이 잘못되었습니다. 내 Win 컴퓨터에서 PuTTY Key Generator를 사용했으며 OS X의 ssh는 다른 형식 인 Open SSH 형식을 기대합니다.

이 키 (PuTTY Key Generator)를 생성하는 데 사용한 도구에는 개인 키를 Open SSH에 필요한 형식으로 변환하는 옵션이 있습니다.

다음과 같이 간단합니다.

  1. PuTTY Key Gen 열기
  2. 개인 키로드
  3. 변환> OpenSSH 키 내보내기를 선택하십시오.

저장할 파일에는 올바른 개인용 키 (OpenSSH) 형식이 포함되어 있습니다.


0

다음을 확인하십시오 :

  1. 개인 키에 pem 형식을 사용하고 있습니다. Mac은 pem과 작동하는 openssh 클라이언트를 사용하기 때문입니다. ppk는 퍼티의 독점 형식이며 openssh와 호환되지 않습니다. ppk를 pem으로 쉽게 변환 할 수 있습니다 만있는 경우 putty keygen을 사용하여 .
  2. pem 파일에 대한 권한은 600입니다. 개인 키는 소유자 만 액세스 할 수 있습니다. 따라서 권한이 다른 사용자에게 읽기 액세스 권한을 부여하면 보안 위협으로 간주됩니다.

이 문제를 희망적으로 해결해야합니다.


-1

.ppk 키 대신 .pem 키를 사용하십시오.


1
우리는 설명과 맥락을 제공하는 긴 답변을 찾고 있습니다. 한 줄만 대답하지 마십시오. 인용에 이상적으로 답이 적합한 이유를 설명하십시오. 설명이 포함되지 않은 답변은 제거 될 수 있습니다.
Tetsujin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.