에이전트에 ssh 키를 추가했습니다.
$ ssh-add ~/.ssh/id_rsa_mac
Identity added: /Users/alex/.ssh/id_rsa_mac (/Users/alex/.ssh/id_rsa_mac)
재부팅 후 에이전트는이 키를 더 이상 추가하지 않습니다.
$ ssh-add -l
The agent has no identities.
왜 이런 일이 일어 났습니까?
답변
에이전트에 키를 추가하는 것은 일시적입니다. 에이전트가 실행되는 동안에 만 지속됩니다. 당신이 그것을 죽이거나 컴퓨터를 다시 시작하면 다시 추가 할 때까지 그들은 손실됩니다. 로부터 ssh-agent
매뉴얼 페이지
ssh-agent는 공개 키 인증 (RSA, DSA, ECDSA)에 사용되는 개인 키를 보유하는 프로그램입니다. 아이디어는 ssh-agent가 X 세션 또는 로그인 세션의 시작에서 시작되고 다른 모든 창 또는 프로그램은 ssh-agent 프로그램의 클라이언트로 시작된다는 것입니다. 환경 변수를 사용하면 ssh (1)를 사용하여 다른 시스템에 로그인 할 때 에이전트를 찾아 인증에 자동으로 사용할 수 있습니다.
에이전트에는 처음에 개인 키가 없습니다. 키는 ssh-add (1)을 사용하여 추가됩니다. 인수없이 실행하면, (1) 파일을 추가 SSH는-추가
~/.ssh/id_rsa
,~/.ssh/id_dsa
,~/.ssh/id_ecdsa
와~/.ssh/identity
. 아이디에 비밀번호 문구가있는 경우 ssh-add (1)은 X11에서 실행중인 경우 단말기에 비밀번호 문구가 있는지 또는 작은 X11 프로그램인지를 묻습니다. 둘 중 하나라도 해당되지 않으면 인증이 실패합니다. 그런 다음 ID를 에이전트에 보냅니다. 에이전트에 여러 ID가 저장 될 수 있습니다. 에이전트는 이러한 ID를 자동으로 사용할 수 있습니다.ssh-add -l
에이전트가 현재 보유한 ID를 표시합니다.
맥 OS 시에라
macOS Sierra 10.12.2 부터 Apple은 SSH 구성을위한 UseKeychain 구성 옵션을 추가했습니다. 당신은 추가하여이 기능을 활성화 할 수 있습니다 UseKeychain yes
당신에게 ~/.ssh/config
.
Host *
UseKeychain yes
OSX 키 체인
OSX를 사용하지 않지만 SuperUser에서이 Q & A를 찾았 습니다. SSH 키와 함께 Mac OS X 키 체인을 사용하는 방법은 무엇입니까? .
Mac OS X Leopard 이후 키 체인은 SSH 키 저장을 지원한다는 것을 알고 있습니다. 누군가이 기능이 어떻게 작동하는지 설명해 주시겠습니까?
따라서이 명령을 사용하여 SSH 키를 키 체인으로 가져올 수 있습니다.
$ ssh-add -K [path/to/private SSH key]
그런 다음 키는 부팅마다 유지되어야합니다.
Mac을 재부팅 할 때마다 키 체인의 모든 SSH 키가 자동으로로드됩니다. Keychain Access 앱의 키와 명령 줄에서 다음을 통해 키를 볼 수 있어야합니다.
ssh-add -l
답변
는 ssh-agent
A는 일시적으로 키를 저장하는 세션 서비스 사용자에 대해.
SSH 에이전트의 주요 목적은 암호를 사용하여 보안 된 키의 일반 텍스트 버전을 기억하는 것입니다. 즉, 키는 암호를 사용하여 암호화 된 디스크에 저장되며 키 소유자 ssh-add
또는 일부 GUI 도구는 암호를 제공하고 세션이 종료되거나 사용자가 명시 적으로 제거를 요청할 때까지 에이전트가 암호를 기억하도록 지시합니다.
비밀번호 문구를 사용하지 않고 에이전트 전달을 사용하지 않는 경우 (대부분의 경우 안전 하지 않음 ) 에이전트가 전혀 필요하지 않습니다 . 모든 SSH 클라이언트는 표준 위치 또는 명시 적으로 지정된 키에서 디스크의 키를 읽을 수 있어야합니다.
표준 위치는 매뉴얼 페이지에 나열되어 있습니다 ssh(1)
.
프로토콜 버전 1의 경우 기본값은 ~ / .ssh / identity이고 프로토콜 버전 2의 경우 ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa, ~ / .ssh / id_ed25519 및 ~ / .ssh / id_rsa입니다.
비표준 위치를 사용하는 경우 동일한 매뉴얼 페이지 -i
에 ssh
설명 된대로 스위치를 사용 하거나 사용중인 SSH 클라이언트의 해당 옵션을 사용할 수 있습니다.
답변
에서 시에라 :
UseKeychain을 사용하십시오 . (나는 이것을 시도하지 않았지만 가장 정확한 해결책처럼 들린다.)
또는
ssh-add -K /your/key
echo ssh-add -A | cat >> ~/.bash_profile
또는 에 추가하는 대신 plist 파일을 작성하십시오~/.bash_profile
.
면책 조항 : 다른 사람들이 지적했듯이 ssh 암호 문구를 키 체인에 저장하는 것이 얼마나 안전한지 모르겠습니다.