SSH“密钥传递”或为什么我无法从我已 ssh 连接的盒子通过 SSH 连接到服务器

SSH“密钥传递”或为什么我无法从我已 ssh 连接的盒子通过 SSH 连接到服务器

情况:我有一台台式机(Debain Sid),我更喜欢在上面开发。我有一台 MacBook Pro,因为我们在为 Mac 开发,所以我在上面编译(使用 Apple SDK,全部由 scons 构建驱动,因此安装了 xcode,但从未使用过。)我们有一个 Mercurial Repo,我们的团队使用这个。我无法对此进行更改。

有一个公钥,用于 Mac 通过 ssh 连接到 HG (Mercurial) Repo。由于我只连接到 Mac,所以 Debian 桌面上没有公钥。

问题:如果我坐在 Mac 前并输入 hg pull(本质上是 ssh 连接),一切都会很顺利。如果我坐在台式机前,通过 ssh 进入 Mac 并运行 hg pull,我会得到:

remote: Permission denied (publickey).
abort: no suitable response from remote hg!

我推测它出于某种原因在 Debian 系统上寻找公钥。有没有办法禁用这个“密钥传递/转发”?我试过在 Google 上搜索,但几乎不可能,因为我被“如何设置公钥”之类的教程淹没了。

请让我不再使用那台 Mac 笔记本电脑键盘。

答案1

你不想禁用密钥转发,你想使能够当您从 Mac 连接到 Debian 机箱时,SSH 代理转发。

来自ssh手册页

-A启用身份验证代理连接的转发。 这也可以在配置文件中按主机指定。

ssh当您进入 Debian 框时(通过运行其的 SSH 代理,正如 Zoredache 提到的,它由 Apple 的钥匙串服务提供), 这将允许您的 Debian 主机使用您 Mac 上的密钥。


请注意,如果您希望此功能从 Debian 机器上的控制台运行,则需要在 Debian 机器上放置密钥 - 代理转发仅在存在 SSH 连接链并使您使用适当的密钥返回到工作代理时才有效...

也可以看看:MacOSX Snow Leopard 中记住 SSH 密码

相关内容