SSH 개인 키를 키 체인에 영구적으로 추가하여 ssh에서 자동으로 사용할 수 있도록하려면 어떻게해야합니까?


419

ssh-add -K ~/.ssh/id_rsa키를로드하지만 재부팅 할 때마다 비밀번호를 묻는 것 같습니다 .

로그인 사이에 키 암호를 다시 입력하지 않아도되는 솔루션을 찾고 있습니다.


1
비밀번호 프롬프트가 표시되는 시점에 대해 좀 더 말씀해 주시겠습니까? 원격 서버에 대한 ssh 키가 있기 때문에 Mac 로그인 암호와 다른 암호가 아니므로 ssh 키의 암호를 몇 년 동안 입력하지 않아도되기 때문에 묻습니다 . 터미널을 열고 "ssh <server>"를 입력하면됩니다. OSX 10.5에서이 키를 먼저 설정 한 것 같습니다. id_dsa, 그러나 나는 그것이 중요하다고 생각하지 않습니다.
Michael H.

id_rsa키에는 암호가 있습니다.
sorin

나는 또한 내가 너무 오래 전에 해결 한 문제가있어서 내가 한 일을 정확하게 기억할 수 없습니다. 하지만 내가 생각하는 아이디어가하는 것입니다 하지 실행 ssh-add하지만, 단지 실행 ssh직접. 키의 암호 문구로 팝업 창이 나타나고 키 체인에 저장할 수있는 확인란이 있어야합니다.
Harald Hanche-Olsen

1
@Sorin-나도 그래! 오래 전에 한 번 입력해야했고, 그 이후로 Mac이 저를 위해 저장했습니다. 희망적으로 Harald의 조언이 도움이 될 것입니다.
Michael H.

키 체인 비밀번호 (예 : 로그인 비밀번호) 또는 키 비밀번호 문구를 의미합니까? 후자의 경우 암호 문구가 키 체인에 확실히 저장되어 있습니까? Keychain Access를 열고 로그인 키 체인에서 찾아서 확인할 수 있습니다.
Mathew Hall

답변:


687

OSX에서 원시 ssh-add클라이언트에는 개인 키의 암호를 OSX 키 체인에 저장하는 특수 인수가 있습니다. 즉, 일반 로그인은 ssh와 함께 사용하기 위해 잠금을 해제합니다. OSX Sierra 이상에서는 항상 키 체인을 사용하도록 SSH를 구성해야합니다 (아래 2 단계 참조).

또는 암호없이 키를 사용할 수 있지만이 워크 플로에서 확실히 허용되는 보안을 선호하는 경우.

1 단계-키 체인에 키 저장

이 작업을 한 번만 수행하십시오.

ssh-add -K ~/.ssh/[your-private-key]

키 비밀번호 문구를 입력하면 다시 입력하라는 메시지가 표시되지 않습니다.

(Sierra 이전 버전의 OSX를 사용하는 경우 2 단계가 필요하지 않습니다.)

2 단계-항상 키 체인을 사용하도록 SSH 구성

OSX Sierra가 로그인간에 키를 유지하는 편리한 동작을 제거한 것으로 보이며 ssh 업데이트는 더 이상 기본적으로 키 체인을 사용하지 않습니다. 이로 인해 업그레이드 후 및 다시 시작할 때마다 키의 암호를 입력하라는 메시지가 표시됩니다.

해결책은 매우 간단 하며이 github thread comment에 설명되어 있습니다. 설정 방법은 다음과 같습니다.

  1. 키 체인에 키를 저장하려면 위의 1 단계를 완료했는지 확인하십시오.

  2. 아직 ~/.ssh/config파일을 작성하지 않은 경우 파일을 작성 하십시오. 즉, .ssh홈 디렉토리 의 디렉토리에라는 파일을 작성하십시오 config.

  3. 해당 .ssh/config파일에서 다음 줄을 추가하십시오.

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

    ~/.ssh/id_rsa개인 키의 실제 파일 이름으로 변경하십시오 . ~.ssh디렉토리 에 다른 개인 키가있는 경우 각 개인 키를 추가하십시오 IdentityFile. 예를 들어, IdentityFile ~/.ssh/id_ed25519두 번째 개인 키 를 읽는 추가 줄이 하나 있습니다.

    이것은 UseKeychain yes핵심 부분으로 SSH가 OSX 키 체인에서 키 암호 문구를 찾도록 지시합니다.

  4. 그게 다야! 다음에 ssh 연결을로드하면 지정한 개인 키를 시도하고 OSX 키 체인에서 암호를 찾습니다. 암호 입력이 필요하지 않습니다.


2
이것은 거의 나를 위해 일했습니다. 내 "로그인"키 체인은 이미 자동 잠금이 비활성화되어 있으므로 Matthew Sanabria의 답변이 적용되지 않았습니다. 를 사용하면 ssh-add -K ...비밀번호를 묻지 않고 ssh 에이전트에 키를 추가했지만 현재 세션에만 해당합니다. 다시 부팅 한 후 명령을 다시 실행해야했습니다.
Poulsbo

4
@Poulsbo & @Abram-내 업데이트를 참조하십시오. Sierra는 자동 동작을 변경했으며 이제 ssh-add -A저장된 키 체인을로드 하려면 수동으로 실행 해야합니다. 위에서 언급 한 몇 가지 가능한 솔루션.
trisweb

3
@trisweb 팁 주셔서 감사합니다. joshbuchea의 .ssh/config파일 수정 솔루션 은 유망한 것으로 보입니다! github.com/lionheart/openradar-mirror/issues/…
Poulsbo

2
@sorin은 업데이트 된 답변을보고 의견이 있으면 알려주십시오. 감사!
trisweb

9
잘 작동합니다! 필자의 경우 키를 키 체인에 추가하고 암호를 등록 하기 위해 A플래그와 함께 플래그 를 사용해야 K했습니다 ( ssh-add -AK ~/.ssh/[your-private-key]). 감사!
youssman

22

나는 pub-key 암호 문구에 대해 매번 질문을 받았다는 점에서 비슷한 문제가있었습니다.

위의 "trisweb"사용자 제안에 따라이 옵션을 ~ / .ssh / config로 설정했습니다.

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

그러나 ssh를 사용할 때마다 여전히 프롬프트가 표시되었습니다.

결국 "ssh -v"를 켜고이 디버그 라인을 찾았습니다.

debug1 : key_load_private : 개인 키를 해독하기 위해 잘못된 암호가 제공되었습니다.

그런 다음 "Keychain Access.app"에서 키 체인을 열고 "SSH : /Users/username/.ssh/id_rsa"라는 키를 찾아서 열었습니다.

"비밀번호 표시"를 클릭하여 비밀번호를 공개했으며 실제로 키링의 비밀번호 문구가 오래된 비밀번호 문구라는 것을 알았습니다.

Keychain Access의 암호 문구를 업데이트했으며 이제 암호가없는 작업입니다.

이 문구로 암호 문구를 업데이트 할 수도 있습니다.

ssh-keygen -p -f ~ / .ssh / id_rsa


13

"로그인"키 체인이 작동하지 않거나 잠자기 상태이거나 재부팅 한 경우마다 암호를 묻는 메시지가 나타납니다. 이를 해결하기위한 두 가지 방법이 있습니다.

  1. "로그인"키 체인의 설정을 변경하십시오. ssh 키가 "로그인"키 체인에 저장되어 있다고 가정합니다.

    • 열린 키 체인 접근
    • "로그인"키 체인 강조
    • "로그인"키 체인을 마우스 오른쪽 버튼으로 클릭하거나 옵션 클릭
    • "X 분 동안 활동이 없으면 잠금"및 "자기 잠금"확인란의 선택을 취소하십시오.
  2. 암호를 사용하지 않고 다른 SSH 키를 생성하십시오.

    • 터미널을 엽니 다.
    • 명령을 입력하십시오 : ssh-keygen -t rsa -b 4096 -C <comment> -f <.ssh/id_rsa>
    • -t는 유형, -b는 키 크기, -C는 주석, -f 출력 파일 (디렉토리를 먼저 작성해야 함)
    • 암호를 설정하지 마십시오.
    • SSH 키를 "로그인"키 체인으로 가져 오기 ssh-add -K <path to ssh key>

더 이상 키 체인 암호를 입력하라는 메시지가 표시되지 않아야합니다.


2
ssh-addSSH 내부에서 호출 할 때는 security unlock-keychain먼저 호출해야합니다. 또한 -f매개 변수 의 디렉토리를 만들 필요가 없었습니다 . 불행히도 security unlocl-keychain매번 암호를 묻는 로그인 키 체인에 액세스하기 위해 SSH 세션 을 호출해야했습니다 .
Ohad Schneider

2
요점은 열쇠에 암호를 붙이는 것입니다. 새 SSH 키를 생성하는 것이 질문에 도움이 될지 의심됩니다.
Gray

7

또한 macOS Sierra 및 HighSierra (이전 버전에 대해 알지 못함)에서 실행 ssh-add -A하면 에이전트가 암호 문구가 키 체인에 저장된 모든 키를로드하게됩니다.


7

위의 모든 기능이 작동하지 않는 경우 모든 ssh 키 프로파일 / 바로 가기에서 UseKeychain yes& AddKeysToAgent yes를 복제했기 때문에 문제가 발생한 것으로 보입니다 . ~/.ssh/config파일을 한 번만 선언하도록 파일을 업데이트 했으며 시작시 암호를 묻지 않고 로그인하면 모두로드됩니다.

Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/foo
  IdentityFile ~/.ssh/bar

Host foo
  HostName foo.com
  User fooUser
  IdentityFile ~/.ssh/foo

Host bar
  HostName bar.com
  User barUser
  IdentityFile ~/.ssh/bar

-3

다음에 공개 키를 추가하십시오.

.ssh/known_hosts

공개 키는 일반적으로 다음과 같습니다.

/home/user/.ssh/id_rsa.pub

희망이 도움이


8
내 생각은authorized_keys
르네 라슨

어쨌든, 하나 이상의 키가 있으면 작동하지 않습니다!
sorin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.