2017-09-29 15 views
1

내 로컬 SSH 키를 사용하여 세 번째 원격 시스템에서 자식 서버에 액세스하는 방법이 있는지 알고 싶습니다. 예 : PC1, PC2 및 GITSERVER 세 대의 컴퓨터가 있다고 가정 해 보겠습니다.로컬 ssh 키를 사용하여 세 번째 컴퓨터에 액세스하는 방법은 무엇입니까?

내 SSH 키는 GITSERVER에 권한이있는 PC1에 저장되어 있습니다. PC1에서 PC2로 GITSERVER에 저장된 저장소를 복제하려고합니다.

내 개인 키를 복사하거나 새로운 개인 키를 만들지 않고이를 수행 할 수있는 방법이 있습니까?

답변

1

에서 PC2 및 복제에 로그인은 ssh_config를 파일은 당신을 도울 수 있습니다. 그러나 그렇다면 항상 개인 키를 가져 오는 중입니다. 원격 시스템에서 개인 키를 사용하지 않으려는 유스 케이스가있을 수 있습니다.

$ vim ~/.ssh/config 
Host remote-pc2 # local name of the host (You can use this on your local terminal to connect to the remote host) 
HostName 127.0.0.1 # enter correct IP here 
User francesco # your login name 
ForwardAgent yes 

이를 구현하는 또 다른 방법 : 원격 컴퓨터에 당신과 당신의 키를 가지고하려면이 들어 , 당신은 호스트마다 정의 할 수 있습니다 당신은 ssh-agent를 시작하고, 여기에 키를 추가 할 수 있는 당신의 .bashrc에서 수행 될 수있다 : 당신이 SSH 세션을 시작할 때마다 암호를 입력 할 필요가 없도록

$ vim ~/.bashrc 
eval `ssh-agent -s` 
ssh-add ~/.ssh/id_rsa 
# check if key is there 
$ ssh-add -l 

이 당신을 도와줍니다. 이 명령에 하나의 연결을 위해 다른 시스템에 로컬 컴퓨터에서 SSH 키를 수행 할 수 있습니다

$ ssh -A [email protected] 
+0

그렇게하는 것이 안전합니까? 즉, 공격자가 내 개인 키에 대한 정보를 얻을 수 있습니까? –

+0

글쎄, 그것은 ssh 전달 에이전트만큼 저장됩니다. 나는 그것을 신뢰한다. 그러나 일부 사람들은 ssh-agent를 저장하지 않는 것으로 간주합니다 (다른 공용 컴퓨터에 연결할 때). 예 : https://heipei.github.io/2015/02/26/SSH-Agent-Forwarding-considered-harmful/ 그러나, 당신이 자신의 컴퓨터에만 연결하는 것처럼 보이기 때문에, 나는 이것을 보안으로 생각할 것입니다 - 보안 패치가 설치되어있는 한 :) – muehsi

1

한 가지 방법은 SSH 에이전트를 전달하는 것입니다. 먼저 ssh_config 파일을 열고 두 줄을 추가하십시오.

$ sudo nano /etc/ssh/ssh_config 

Host <PC2-server-ip.com> 
ForwardAgent yes 

에이전트 목록에 ssh 키를 추가하십시오.

$ eval "$(ssh-agent)" 
$ ssh-add ~/.ssh/id_rsa   # add ssh key to list of agent 
identites 
$ ssh-add -l      # you can see the agent just added 

이제 GITSERVER

Sajib 칸 상태로
$ ssh <user>@<pc2-server-ip> 
$ git clone ...