我想知道是否有办法使用我的本地ssh密钥从第三台远程计算机访问git服务器。 例如: 想象一下,我们有三台电脑:PC1,PC2和GITSERVER。
我将我的ssh密钥存储在PC1上,这些密钥是在GITSERVER上授权的,从PC1我ssh到PC2,我想要克隆存储在GITSERVER上的存储库。
有一种方法可以在不复制我的私钥或创建新私钥的情况下做到这一点吗?
答案 0 :(得分:2)
一种方法是转发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 ...
答案 1 :(得分:1)
正如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