Sierra로 업데이트 한 이후 macOS에서 ssh 암호 문구를 계속 묻습니다.


588

암호를 기억하는 데 사용되었지만 지금은 매번 나에게 묻습니다.

이 명령으로 공개 키를 다시 생성해야한다는 것을 읽었습니다.

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

그러나 아무것도 고치지 않았습니다.

macOS에서 암호를 다시 기억하게하려면 어떻게해야합니까?


관련 동작이 발생했습니다. 이전에는 암호를 묻는 키 링 대화 상자가 나타납니다. 이제 일반 SSH 콘솔 프롬프트가 나타납니다. 일부 도우미 프로그램 등록이 취소되었을 수 있습니다.
Daniel B

1
id_rsa를 생성 한 지 몇 년이 지났으며 암호를 사용한 적이 없으며 이것을 사용하여 많은 서버에 ssh 할 수 있습니다. 암호가 실제로 있습니까, 아니면 Sierra가 생각해야한다고 생각합니까? $ cat ~ / .ssh / id_rsa | head -2 ----- 시작 RSA 개인 키 ----- Proc-Type : 4, 암호화
Joe Murray


Pretzo를 사용하고 있는데이 방법으로도 문제를 해결하지 못한 경우 :에서 ssh모듈을 활성화 하지 않았는지 확인하십시오 zpretzorc. 어쨌든 macOS에서는 필요하지 않으며 활성화되어 있으면 추가 한 후에도 암호 문구를 입력하라는 메시지가 표시됩니다 UseKeychain.
Jimothy

1
일을 시도 ssh -v ...... 그것은 유용한 디버그 정보가 있는지
rogerdpack

답변:


1130

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

Host *
    UseKeychain yes

다른 것을 변경할 필요가 없습니다. 이제 모든 것이 최신 업데이트 이전에 작동하던 방식으로 작동합니다. 에 키를 추가 할 필요는 없습니다 ssh-agent.


편집 : 여전히 암호를 한 번 입력해야 할 수도 있습니다. 모르는 경우 다음 지침에 따라 공개하십시오.


24
이것은 절대적으로 나를 위해 일했습니다. 아래의 모든 것이이 수정보다 더 복잡해 보입니다.
Br.Bill

82
1, 참고 Host *블록이 (거의) 항상 하단에 배치해야합니다 ~/.ssh/config파일. 때 ssh설정을 찾고 그것을 사용 처음 발견 한 값입니다. 따라서 와일드 카드 블록을 끝에두면 기본값 세트로 작동합니다. 파일에서 이전에 특정 호스트를 지정하여 설정을 무시할 수 있습니다.
Molomby

6
이것은 나에게도 효과가 있었지만 암호를 올바르게 입력해야했습니다. 이 다른 답변 당신이 그것을 기억하지 않는 경우 암호를 볼 수있는 방법에 대해 설명합니다.
FGreg

26
구성 파일이 존재하지 않는 경우 구성 파일을 작성하고 추가하면 작동합니다.
wynshaft

7
Host *제목이 필요하지 않습니다 . 모든 호스트에 적용 UseKeychain yes하려면 상단에 단일 행 을 추가하십시오 .ssh/config.
sj26

185

나는 같은 문제가 있었다. MacOS Sierra 키 체인은 암호 문구를 계속 요구합니다. id_rsa는 보안을 위해 암호로 암호화해야합니다. 그런 다음 키 체인에 추가하십시오ssh-add -K ~/.ssh/id_rsa

키가 다른 폴더에 있으면 ~/.ssh올바른 폴더로 바꾸십시오.

키 체인은 이제 당신의 ssh 키를 알고 있으며, 모든 작업이 가능할 것입니다.


25
이것은 작동하지만 컴퓨터를 다시 시작할 때 지속되지 않는 것 같습니다. 다른 사람과 같은 문제가 있습니까?
joshua.paling

1
예, 같은 문제입니다. @ joshua.paling
kingkool68

18
@ joshua.paling, kingkool68-Apple은 주류 OpenSSH 동작을 준수하기 위해 재부팅시 SSH 키를 기억하는 기능을 제거했습니다. 동일한 기능을 수행하는 다른 방법은이 질문을 참조하십시오. apple.stackexchange.com/questions/254468/…
Evan Pon

@EvanPon 그러나 암호화 된 키로는 작동하지 않습니까?
Konrad Rudolph

2
@KonradRudolph 그것은 나를 위해 작동합니다. 호출 ssh-add-A옵션은 문제의 정체성에 대한 암호에 대한 맥 OS 키 체인에서 찾게됩니다. 암호가 키 체인에 없으면 프롬프트가 표시됩니다.
Evan Pon

73

이것은 비슷한 문제를 해결했습니다.

/usr/bin/ssh-add -K

키 체인에 암호를 저장합니다.

업데이트 (@EasyCo 덕분에) : 이것은 작동하지만 다시 시작할 때까지 지속되지 않습니다. @이 페이지에 유카 - suomela의 솔루션은 않습니다 다시 시작에서 작동. 그 대답은 여기에서 찾을 수 있습니다.

https://superuser.com/a/1158050/234685


3
이것이 유일하게 작동합니다.
cryptic0

5
이 솔루션을 사용할 때 .ssh / .config를 만들 필요가 없었습니다.
Shai

이것은 나를 위해 일했습니다. 호스트 파일을 편집 할 필요가 없습니다. 나는 시에라에있다.
cchiera

이것은 Mac OS Sierra에서 나를 위해 일했습니다.
Dayron Gallardo

2
앞에서 언급했듯이 이것은 작동하지만 다시 시작해도 지속되지 않습니다. @ jukka-suomela의 솔루션은 다시 시작하는 동안 작동합니다.
EasyCo

40

올바른 암호를 한 번만 입력하면 작동하기 시작했습니다. 문제는 원래 SSH 암호 문구를 기억하지 못했지만 Github에서 다음 단계를 수행하여 복구했습니다 .

  • Finder에서 Keychain Access 앱을 검색하십시오.
  • 키 체인 접근에서 SSH를 검색하십시오.
  • SSH 키 항목을 두 번 클릭하여 새 대화 상자를 엽니 다.
  • 키 체인 액세스 대화 상자 왼쪽 하단에서 비밀번호 표시를 선택합니다.
  • 관리 비밀번호를 묻는 메시지가 나타납니다. "키 체인 접근"대화 상자에 입력하십시오.
  • 비밀번호가 공개됩니다.

2
작동하지 않습니다. 터미널은 여전히 "잘못된 암호"라는
재이든 로손

18

새 MacBook Pro에 Sierra over El Capitan을 설치 한 후 위의 솔루션 중 어느 것도 작동하지 않았습니다. Sierra by design은 SSH 키를 키 체인에 저장하지 않습니다.

두 가지 해결책이 나를 위해 일했습니다. 하나는 ssh-add -A &> /dev/null~ / .bash_profile에 명령을 추가하는 것 입니다. 터미널을 열 때마다이 명령이 실행됩니다 ( &> /dev/null부분은 명령 출력을 / dev / null 파일로 보냅니다).

보다 복잡하지만 약간 더 쉬운 해결책은 macOS Sierra 키 체인에 SSH 키 저장 에서 제안 된대로 OS가 부팅 될 때마다 실행되는 명령으로 plist를 만드는 것입니다 . 여기에는 Xcode를 사용하여 파일을 만드는 과정이 포함됩니다.


이뿐만 아니라 애플의 공식적인 답변을 것으로 보인다 - 참조 openradar.appspot.com/27348363
닉 메이 나드

지금까지 가장 적합한 솔루션입니다. Mac OSX Sierra (10.12.2)를 사용하고 있습니다.
zyc

15

하나의 수정은 ~ / .ssh / config 파일에 다음을 추가하는 것입니다.

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

에서 촬영 : https://www.reddit.com/r/osx/comments/52zn5r/difficulties_with_sshagent_in_macos_sierra/ 참조 : https://apple.stackexchange.com/a/264974/3810


지금까지 아무도 대답하지 Bad configuration option: usekeychain않았지만 누구든지 UseKeychain 에서 발생 하는 오류에 대해 언급했습니다 (그러나 대문자). 하지만 했다 그냥 그 라인을 제거하고 AddKeysToAgent 및 IdentityFile을 두어 작업을 얻을 수 (당신은 여전히 암호를 처음 입력해야합니다). 이것은 macOS Sierra 10.12.6과 함께 제공됩니다.
William Turrell

이것은 터미널에 있고 ssh 명령을 사용할 때 잘 작동하지만 자체 터미널을 사용하는 WebStorm과 같은 다른 앱은 일반 터미널에서 ssh 명령을 처음 사용할 때까지 구성을 취하지 않습니다. 그런 다음 어디에서나 제안 사항이 있습니까?
santiago arizti

@WilliamTurrell이 여전히 발생하면 유형은 which ssh당신이 사용하고 있는지 확인하기 위해 /usr/bin/ssh뭔가 같은에서 것이다 핑크 또는 MacPorts를에서 버전, 그리고 /usr/local/bin/ssh/opt/local/bin/ssh
스테판 Lasiewski

7

오늘 아침 시에라로 업데이트 한 후에도 같은 문제가 발생했습니다. 필자의 경우 id_rsa파일이 암호화되었으며 해독 후 매력처럼 작동했습니다.

  1. id_rsa다음 명령으로 파일이 암호화 되었는지 확인하십시오 .cat ~/.ssh/id_rsa | head -2
  2. 두 번째 줄에이라고 표시 Proc-Type: 4,ENCRYPTED되면 암호화되어 있으며 해독 할 수 있습니다
  3. 중요 : 원본 id_rsa파일을 백업 하십시오! 명령을 사용하십시오cp ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
  4. 로 개인 키 해독 openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa.decrypted
  5. 원래 키 ( rm ~/.ssh/id_rsa)를 제거하고 해독 된 키로 교체하십시오.mv ~/.ssh/id_rsa.decrypted ~/.ssh/id_rsa

이 단계 후에 ssh를 다시 사용할 수 있습니다.


4
이것이 일종의 해결 방법이지만 OP의 문제를 실제로 해결 한다고 생각하지 않습니다 .
Daniel B

이것은 나를 위해 작동합니다. @DanielB, 이것을하는 데 문제가 무엇입니까?
Dag Høidahl 2016 년

7
@ DagHøidahl 키가 더 이상 암호화되지 않습니다. 정기적 인 사용자 권한으로 도난 당할 수 있으므로 암호화는 강력해야합니다.
Daniel B

6
이렇게하면 키에서 암호가 제거되므로 OP 문제를 해결할 수 있습니다. 그러나 나는 이것을 반대하는 것이 좋습니다. 암호는 도난 당했을 때 사람들이 귀하의 키를 사용하지 못하게하는 모든 것입니다. 키는 아마도 여러 시스템에 액세스 할 수 있기 때문에 약화시키고 싶지는 않습니다.
Martijn Heemels

5

여기에 여러 답변을 시도했지만 여전히 원격 키 전달에 문제가 있습니다 (예 : capistrano 사용시). 이를 해결하기 위해 apple에서 기술 노트를 읽고 이것을 내 구성 파일로 만들었습니다. 더 이상 비밀번호를 요구하지 않습니다!

https://developer.apple.com/library/content/technotes/tn2449/_index.html

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

4

Capistrano 사용하여 일부 코드를 배포하려고 할 때도이 문제가 발생했습니다 . 매우 실망 스럽습니다. 이 문제를 해결하기 위해 내가 아는 두 가지 방법이 있습니다.

방법 1 : 알려진 모든 키를 SSH 에이전트에 추가하십시오 .

내가 찾은 한 가지 해결책은 다음 ssh-add-A같이 키 체인에 저장된 암호를 사용하여 SSH 에이전트에 알려진 모든 ID를 추가 하는 옵션 으로 실행 하는 것입니다.

ssh-add -A

이제는 작동하지만 재부팅해도 지속되지 않습니다. 따라서 다시 걱정하지 않으려면 다음 ~/.bash_profile과 같이 사용자 파일을여십시오.

nano ~/.bash_profile

그리고 아래에이 줄을 추가하십시오 :

ssh-add -A 2>/dev/null;

이제 새로운 터미널 창을 열면 모든 것이 좋을 것입니다!

방법 2 : 키 체인 에있는 SSH 키만 에이전트에 추가하십시오.

따라서 ssh-add -A가장 기본적인 경우 에는 옵션이 작동하지만 최근에 가장 일반적인 시스템 위에 6-7 Vagrant 상자 (액세스에 SSH 키 / ID를 사용하는)가 설치된 문제 id_rsa.pub가 발생했습니다.

간단히 말해, 서버 액세스는 비밀번호를 기반으로하고 SSH 키 / 아이덴티티는 SSH 키 / 아이덴티티이므로 SSH 키 / 아이덴티티를 기반으로 너무 많은 실패한 시도로 인해 원격 서버에서 잠겼습니다. 그래서 SSH 에이전트는 모든 SSH 키를 시도했지만 실패했으며 암호 프롬프트를 볼 수 없었습니다.

문제는 ssh-add -A필요하지 않더라도 에이전트에 필요한 모든 단일 SSH 키 / 아이덴티티를 임의로 추가 한다는 것입니다. 방랑 상자의 경우와 같이.

많은 테스트 후 내 솔루션은 다음과 같습니다.

먼저, 필요한 것보다 많은 SSH 키 / 아이덴티티를 에이전트에 추가 ssh-add -l한 경우 다음 과 같이 에이전트에서 모두 제거하십시오.

ssh-add -D

그런 다음 SSH 에이전트를 백그라운드 프로세스로 시작하십시오.

eval "$(ssh-agent -s)"

이제 이상 해져서 왜 그런지 잘 모르겠습니다. 경우에 따라 다음 ~/.ssh/id_rsa.pub과 같이 에이전트에 키 / ID를 구체적으로 추가 할 수 있습니다 .

ssh-add ~/.ssh/id_rsa.pub

암호를 입력하고 맞으면 Return가십시오.

그러나 다른 경우에는 단순히 이것을 실행하면 키 / 아이덴티티를 추가하기에 충분합니다.

ssh-add -K

모두 제대로 작동하면 입력하고 ssh-add -l하나의 고독한 SSH 키 / 아이덴티티가 표시되어야합니다.

문제 없다? 이제 당신의 .bash_profile:

nano ~/.bash_profile

그리고이 줄을 맨 아래에 추가하십시오. 해당 -A버전이있는 경우 주석을 달거나 버전을 제거하십시오 .

ssh-add -K 2>/dev/null;

이렇게하면 시작 / 재부팅 할 때마다 SSH 키 / 아이덴티티를 SSH 에이전트로 다시로드 할 수 있습니다.

업데이트 : Apple은 이제 UseKeychain열린 SSH 구성 옵션에 옵션을 추가 ssh-add -A했으며 솔루션도 고려 합니다.

macOS Sierra 10.12.2부터 Apple UseKeychain은 SSH 구성에 대한 구성 옵션을 추가했습니다 . 을 통해 매뉴얼 페이지를 확인하면 man ssh_config다음 정보가 표시됩니다.

UseKeychain
        On macOS, specifies whether the system should search for
        passphrases in the user's keychain when attempting to use a par-
        ticular key. When the passphrase is provided by the user, this
        option also specifies whether the passphrase should be stored
        into the keychain once it has been verified to be correct.  The
        argument must be ``yes'' or ``no''.  The default is ``no''.

중 하나를 추가로 애플이 솔루션을보고 아래로 비등하는 ssh-add -A.bash_profile 이 열기 레이더 티켓에 설명 된대로 또는 추가 UseKeychain사용자 당에있는 옵션 중 하나 ~/.ssh/config.


3

Jukka Suomela답변 은 정확하지만 openssh에서 설치 homebrew한 것을 사용하는 경우 다음을 사용하여 제거해야합니다.

brew remove openssh

... homebrew는 UseKeychainssh 구성 항목을 지원하지 않기 때문에 시스템 기본 openssh로 다시 전환 합니다.


1
누구든지 homebrew와 함께 그것을 원한다면 여기에 핑하십시오 : github.com/rdp/homebrew-openssh-gssapi
rogerdpack

1

여기에 제안 된 모든 솔루션을 시도했지만 Mac에 키 체인이 설정되어 있지 않습니다.

.ssh/config로컬 및 원격 시스템의 최상위 파일 에서 다음 줄에 추가하면 나를 위해 일했습니다.

PubkeyAcceptedKeyTypes=+ssh-dss 

1

당신은 필요 .plist에 추가 파일을 ~/Library/LaunchAgents/실행하는 ssh-add -A맥 OS의 모든 시작에 있습니다.

SSH-keys-in-macOS-Sierra-keychain 에서 다음을 수행하는 단일 명령 이 있습니다.

curl -o ~/Library/LaunchAgents/ssh.add.a.plist https://raw.githubusercontent.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain/master/ssh.add.a.plist
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.