SVN + SSH, 매번 ssh-add를 할 필요가 없습니까? (맥 OS)


105

답이 저 밖에 있다는 것을 알고 있지만, 나는 꽤 유닉스에 멍청하고 얼굴에 맞으면 해결책을 인식하지 못할 것입니다.

저는 Mac에서 SSH 터널링을 통해 SVN 서버에 연결하고 있습니다. ssh-add privateKey.txtSVN 서버에 연결할 때마다 해야 합니다 (Cornerstone과 Xcode 모두 SVN에 연결 중입니다).

매번이 작업을 수행 할 필요가 없도록 키를 어딘가에 "저장"하는 방법이 있습니까? 내 키 체인에 추가 하시겠습니까? 일부 구성 파일? 스크립트를 시작 하시겠습니까?

답변:


172

먼저 개인 키 파일을 ~/.ssh. 이것은 꼭 필요한 것은 아니지만 그러한 일을위한 표준 장소입니다.

그런 다음 ssh-add -K ~/.ssh/privateKey.txt. 필요한 경우 암호를 입력하라는 메시지가 표시되고 키 체인에 추가합니다.

그 후에는 다른 작업을 수행 할 필요가 없습니다. 여기에 약간 더 긴 설명이 있습니다 .


17
나는 이것이 보편적 인 유닉스가 아니라 맥이라는 것을 명시 적으로 주목할 가치가 있다고 생각한다. 우분투에서는 논쟁을 ssh-add할 수 없습니다 -K.
Mark Amery

2
링크 된 기사가 Leopard 용이지만 OS X Mavericks에서도 여전히 작동한다는 점에 주목하고 싶습니다.
Josh Brown

1
누군가가 다른 환경에 대해 동등한 명령을 가지고 있습니까? mysysgit의 SSH-추가 중 하나는 -K 인수를 허용하지 않습니다
블레이크

5
어떤 이유로 내가 할 때 -KI는 다시 시작한 후에도 여전히 문제가 있습니다
Mat Teague

7
macOS Sierra를 사용하십니까? 동작이 변경되었으며 이제 로그인시 ssh-agent에 키를 명시 적으로 추가해야합니다. github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain
Nicholas Riley

49

키 체인에 암호 저장

키 체인에 기본 키의 암호를 저장하려면 터미널을 열고 다음을 실행하십시오.

ssh-add -K

그리고 다른 키 실행에 대한 암호를 저장하려면 다음을 수행하십시오.

ssh-add -K /path/to/private/key/file

암호를 입력하라는 메시지가 표시되면 입력하면됩니다.

ssh-add를 실행하거나 암호를 다시 입력 할 필요가 없습니다.

이 사이트에서 가져온 답변 : http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html


20

많은 탐구 끝에이 문제에 대한 답을 완전히 찾은 것 같습니다. 먼저 ssh-add -K ~/.ssh/your_key_here. 그러면 키 체인에 키가 추가됩니다. 어떤 곳에서는 이것으로 충분하다고 읽었지만 확실하지 않았습니다. 이것은 또한 Mac 전용이므로 다른 유닉스 버전에서이 작업을 수행해야하는 경우이 옵션이 반드시 필요하지는 않습니다.

좋은 측정 ~/.ssh/config을 위해 내가 가지고있는 모든 키를 가리 키 도록 파일을 편집했습니다 (생성해야 할 수도 있음). 광산에는 다음이 있습니다.

IdentityFile ~/.ssh/identity
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa 
IdentityFile ~/.ssh/my_other_identity_here
IdentityFile ~/.ssh/yet_another_identity_here

ssh_config 의 man 페이지 에 따르면 순서대로 시도합니다. 내가 나열한 처음 세 개의 기본 항목이 있어야하는지 확실하지 않지만 어쨌든 포함 시켰습니다.


-KMac OS X 에는 플래그 가 없습니다.ssh-add
dr.dimitru 2015

2
이다-K 에 대한 OS X에 플래그 ssh-add. 그에 더해, 이것은 선택된 대답이어야합니다.
kaiser 2015

1
/usr/bin/ssh-add제공된 homebrew /usr/local/bin/ssh-add가 -K 옵션을 제공 하지 않는지 확인하십시오 .
Remco Wendt

2
(가) 일단 ~/.ssh/config이, 필요는 실행되지하는 ssh-add컴퓨터 재부팅 후 명령 매번.
hailong 2016

7

macOS 10.12.2부터 UseKeychain옵션을 사용할 수 있습니다 . 여기에서 자세한 내용을 읽 거나 man ssh_config.

     UseKeychain
         On macOS, specifies whether the system should search for passphrases in the user's keychain
         when attempting to use a particular 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''.

따라서 다음을 수행하십시오.

echo "UseKeychain yes" >> ~/.ssh/config


3
이것은 올라갈 필요가 있습니다. 매우 중요합니다 !
quarezz

2

나는 Mac에 대한 경험이 많지 않으므로이 버전이 귀하에게 적합한 지 확실하지 않지만 http://www.phil.uu.nl/~xges/ssh/를 살펴보십시오 .

이 특정 앱이 작동하지 않으면 어쨌든 당신이 찾고있는 것입니다 ssh agent. 유닉스와 같은 상자에서는 전역 효과를 얻기 위해 전체 창 관리자를 시작하고 싶지만 osx에서는 가능하지 않을 수 있습니다.

추가 정보 : http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html


1

sshkeychain 은 하나의 가능성입니다. 다음을 사용하여 macports와 함께 잘 설치됩니다.

sudo port install sshkeychain

키 체인을 사용하여 암호를 저장하고 로그인 세션을 시작할 때 간단히 실행할 수 있습니다 (처음 시작할 때 도크 아이콘 + "시작할 때 실행"에서 일반적인 오른쪽 클릭을 사용).

Apple의 svn은 키 체인을 사용하여 암호를 저장하지만 macports로 빌드 할 svn 바이너리 일 필요는 없습니다.


0

다음을 실행하여 키 체인에 키를 추가합니다.

ssh-add -K ~/.ssh/id_rsa

~/.ssh/config키 체인에서 ssh-agent ( AddKeysToAgent yes옵션)로 키를 자동으로로드하고 키 체인 ( 옵션)에 암호를 저장 하도록 ssh 구성 ( ) 파일을 편집합니다 UseKeychain yes.

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