0

我正在尝试设置从一台主机到另一台主机的无密码身份验证。下面是场景:

用户 A 有权访问主机 A (Windows Server)。用户 B 可以访问主机 B(Unix 服务器)(不是直接访问。您需要使用不同的帐户登录到主机,然后 su 到用户 B)

我想知道是否可以为主机 A 设置无密码身份验证以作为用户 B 连接到主机 B?

我试图从主机 A 获取公钥并将其添加到 authorized_keys (.../.ssh/authorized_keys) 文件中。我检查了 authorized_keys 的权限是 600,.ssh 的权限是 700。

authorized_keys的内容如下:

---- BEGIN SSH2 PUBLIC KEY ---- ssh-rsa AAAAB3NzaC1yc2EAAAABJQCCCIEAwc4rPjPeehHYe1VmUX4/X8pZwtqBawwD56Ksfi3wlEiM ZlbO1kH1a+eBAC51aWgYbuAiKsLCaVVtZKx0ArcfJzWvnO36VpHGYxPEMpBG/YzoxVwh5WL2DUNijJ1/ ZePAeayg/4RvBp2y9Ds1TQB29Oe3tTVeRTY3eUky4zSWEQE== UserA@HostA 01 ---- END SSH2 PUBLIC KEY ----

我在文件中尝试了一些 User@host 组合,包括 userB@hostB 但无济于事。

有人可以建议我是否正在尝试一些不可能的事情(可能是我做得不对)?或者如果我有什么遗漏?

任何帮助将非常感激。谢谢。

4

1 回答 1

1

authorized_keys 由字段options、keytype、base64 编码的 keycomment组成。在您的示例中未提及选项(可选且不是必需的)。最后一部分是没有真正使用的注释。

HostB上修改~UserB/.ssh/authorized_keys如下所示作为单行并注意您没有引入空格

ssh-rsa AAAAB3NzaC1yc2EAAAABJQCCCIEAwc4rPjPeehHYe1VmUX4/X8pZwtqBawwD56Ksfi3wlEiMZlbO1kH1+eBAC51aWgYbuAiKsLCaVVtZKx0ArcfJzWvnO36VpHGYxPEMpBG/YzoxVwh5WL2DUNijJ1/ZePAeayg/4RvBp2y9Ds1TQB29Oe3tTVeRTY3eUky4zSWEQE== UserB@HostB

您使用哪个 ssh 客户端从主机 A 连接到主机 B?Cygwin ssh 还是 Putty?

  1. 如果您在 HostA 上使用 Cygwin ssh,请尝试运行:

    ssh UserB@HostB或者ssh -i <yourPrivateKey> UserB@HostB

  2. 如果您使用的是 Putty,您可能需要将私钥导入 Putty 密钥生成器并保存为“.ppk”文件。在主机名中指定UserB@HostB并在 Connection -> SSH -> Auth -> Private key... 下浏览到您的“.ppk”文件。

于 2014-10-22T12:16:32.407 回答