2012-03-12 3 views
30

저장소 클라이언트에서 두 개의 다른 계정에 액세스하려면 클라이언트에 여러 개의 키가 있어야합니다. https://redefy.repositoryhosting.com/support -> 클라이언트에서 여러 개의 키 쌍으로 여러 계정을 관리하려면 어떻게합니까?를 참조하십시오.Windows에서 힘내에서 여러 ssh 키 간 전환

Windows의 힘내에서 다른 SSH 키를 변경하는 방법을 모르겠지만 아무도 도와 줄 수 있습니까?

+0

당신이 OpenSSH의 또는 가용 스루풋을 사용하고 그 리모트로 밀어 수 있습니다 그들을 사용하여 두 개의 리모컨을 정의 할 수 있습니다? –

+0

ssh 설정에 대한 자세한 내용은 [한 클라이언트에서 여러 ssh 개인 키를 사용하는 가장 좋은 방법] (http://stackoverflow.com/questions/2419566/best-way-to-use-multiple-ssh-private- keys-on-one-client) – peron

답변

37

git bash와 openssh를 사용한다고 가정합니다.

기사에 쓰여있는 것과 마찬가지로 모든 계정을 나열하는 ssh 클라이언트 용 구성 파일을 만들 수 있습니다. 당신은 무엇 말하는 것은 당신이 가지, 두 가지를 정의이다 ~/.ssh/config

Host account-one 
HostName server.example.com 
User user-one 
IdentityFile ~/.ssh/key-one 

Host account-two 
HostName server.example.com 
User user-two 
IdentityFile ~/.ssh/key-two 

에 자신의 ssh 클라이언트 구성 파일에 다음과 같은 구성을 작성할 수 account-oneaccount-two라는 이름의 "호스트 별명". 연결을 사용할 때 ssh 클라이언트는 서버 주소, 사용자 이름 및 ssh 키 파일에 대해 HostName, UserIdentityFile을 사용합니다. 이를 사용하여 동일한 서버의 계정과 키에 액세스 할 수 있습니다.

자식, 당신은 다음

$ git remote add one account-one:repository.git 
$ git remote add two account-two:repository.git 

당신이 당신의 SSH 연결을위한

$ git push one master 
$ git push two master 
+0

안녕하세요, 어떻게이 설정 파일을 사용하여 복제 할 수 있습니까? "$ git clone one repositoyr.git master"는 "인자가 너무 많습니다"라는 오류를줍니다. – Tariq

+0

호스트 이름과 저장소 경로 사이에 콜론을 추가하는 것을 잊지 마십시오. 귀하의 경우 그것은 하나 일 것입니다 : repositoyr.git' – fajran

+0

여기 문서에 명시된대로 http://linux.die.net/man/5/ssh_config IdentityFile 사용자의 RSA 또는 DSA 인증 ID를 읽는 파일을 지정합니다 . '% d'(로컬 사용자의 홈 디렉터리), '% u'(로컬 사용자 이름), '% l'파일 이름은 사용자의 홈 디렉터리 또는 다음 이스케이프 문자 중 하나를 나타낼 때 틸드 구문을 사용할 수 있습니다. (로컬 호스트 이름), '% h'(원격 호스트 이름) 또는 '% r'(원격 사용자 이름). IdentityFile % u/.ssh/id_rsa –

0

조금 간접적으로 대답하겠습니다. 이전에 git bash를 사용했는데 git bash 쉘을 통해 git을 사용하고있을 때 mac 또는 Linux bash 쉘처럼 작동한다는 것을 알았습니다. git bash를 사용하면 다음과 같은 질문에 대답 할 수 있습니다 :

'git bash를 사용하는 경우 Linux 또는 Mac을 사용하는 것처럼 여러 계정을 관리 할 수 ​​있습니다. ssh-agent/ssh- add and friends '

2

Windows에서는 PuTTY, PSCP, PSFTP 및 Plink에 대한 SSH 인증 에이전트를 Pageant에 시도해야합니다. 이 도구는 yout ssh 키와 pass-phrase를 관리 할 수 ​​있습니다. Git과 함께 사용하려면 Putty를 설치하고 GIT_SSH 변수를 설정하는 plink.exe에 연결해야합니다.

  1. 퍼티 친구 (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
  2. 설정 GIT_SSH

    set GIT_SSH=<path-to-plink.exe>

  3. 시작 설치 선발 대회 당신에게 추가 키
  4. 실행 망할 놈의

HTH Daniel

7

git이 연결에 사용하는 SSH 프로그램이 어떤 서버를 처리하는지 어떤 키가 사용됩니다. 기본 설정에서는 명령 행 SSH 클라이언트 (openSSH?) 여야합니다. 당신이 ~/.ssh/config 파일에 특정 호스트에 대한 특정 키 파일을 구성 할 수 있습니다 OpenSSH를 사용

: ~/.ssh/*.example.com-id_rsa 각 서버의 개인 키 파일입니다

Host foo.example.com 
    IdentityFile ~/.ssh/foo.example.com-id_rsa 

Host bar.example.com 
    IdentityFile ~/.ssh/bar.example.com-id_rsa 

.

이 정보가 도움이되기를 바랍니다.

+0

Windows에서 실행중인 경우에도 경로에 슬래시가 있어야합니까? –

+0

이러한 모든 경로는 유닉스와 유사하므로 Windows에서 cygwin을 사용하는 경우 작동합니다. 다른 쉘을 쉘로 사용하는 경우 조정해야합니다. – mamapitufo

+0

감사! 방금 sth도 사용할 수 있다는 것을 알았습니다. Windows의 경우 "/C/Users/Benny/.ssh/id_rsa"와 같습니다. –