0

假设服务器 myLaptop、A 和 B。同一个 ssh-agent 应该允许我通过 A 和 B 而无需读取服务器 A 中的 ssh-agent 去 B。

$ eval `ssh-agent`; ssh-add ~/.ssh/mePriv   #In myLaptop
$ ssh me@kosh.A.com                         #Works without typing pwd
$ ssh me@triton.A.com                       #Won't work, ssh-agent not alive in A?!   
$ eval `ssh-agent`; ssh-add ~/.ssh/mePriv; ssh me@triton.A.com #Works, dupe...

现在我在 myLaptop 和 A 中运行 ssh-agent。有没有一些简单的方法可以让我只在 myLaptop 中设置一次 ssh-agent 而无需在 A 中重新输入所有内容?

Ps 我不确定技术术语,但是我在这里尝试实现的通过服务器 A 连接到服务器 B 的相同事情可以通过 ssh-forwarding/ssh-tunneling 之类的东西来完成,不确定术语是否正确。对于这个问题,关注 ssh-agent。最简单的解决方案非常感谢!

4

1 回答 1

1

请在此处查看答案。

不久

  • 在你的服务器上运行 ssh-keygen
  • 将私钥 id_rsa 移动到笔记本电脑的 $HOME/.ssh/id_rsa
  • 从您的服务器中删除私钥 id_rsa
  • 在您的笔记本电脑中创建以下 $HOME/.ssh/config
  • 运行 ssh-add $HOME/.ssh/id_rsa
  • 将公钥复制到笔记本电脑的 $HOME/.ssh/id_rsa.pub
  • 将公钥添加到服务器的 $HOME/.ssh/authorized_keys

有 .ssh/config 之类的

Host server.myhomepage.com
  User masi
  Port 22
  Hostname server.myhomepage.com
  IdentityFile ~/.ssh/id_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes
于 2014-03-25T20:17:00.720 回答