如何使用本地ssh key访问第三台电脑?

How to use local ssh key to access a third computer?

我想知道是否有办法使用我的本地 ssh 密钥从第三台远程计算机访问 git 服务器。 例如: 假设我们有三台计算机:PC1、PC2 和 GITSERVER。

我将我的 ssh 密钥存储在 PC1 上,这些密钥已在 GITSERVER 上获得授权,我从 PC1 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