我想知道是否有一种方法可以使用我的本地SSH键从第三台远程计算机访问GIT服务器。例如:想象一下我们有三台计算机:PC1,PC2和GITSER。
我在PC1上存储了我的SSH键,该密钥已在Gitser上授权,从PC1 I SSH到PC2,从我想在Gitserver上储存的存储库。
没有复制我的私钥或创建新密钥的方法可以做到这一点?
一种方法是转发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
现在,登录到pc2,并从gitserver登录:
$ ssh <user>@<pc2-server-ip>
$ git clone ...
正如萨吉布·汗(Sajib Khan)所述,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
中完成:
$ vim ~/.bashrc
eval `ssh-agent -s`
ssh-add ~/.ssh/id_rsa
# check if key is there
$ ssh-add -l
这对您有所帮助,因此您不必在启动SSH会话时输入密码。您可以将SSH键从本地计算机带到另一台计算机,以与此命令一起使用:
$ ssh -A username@remote-host