设置从一个主机到另一个主机的无密码身份验证

时间:2014-10-20 10:19:14

标签: windows unix ssh authorized-keys

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

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

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

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

authorized_keys的内容如下:

----开始SSH2公钥---- ssh-rsa AAAAB3NzaC1yc2EAAAABJQCCCIEAwc4rPjPeehHYe1VmUX4 / X8pZwtqBawwD56Ksfi3wlEiM ZlbO1kH1a + eBAC51aWgYbuAiKsLCaVVtZKx0ArcfJzWvnO36VpHGYxPEMpBG / YzoxVwh5WL2DUNijJ1 / ZePAeayg / 4RvBp2y9Ds1TQB29Oe3tTVeRTY3eUky4zSWEQE == UserA @ HostA 01 ----结束SSH2 PUBLIC KEY ----

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

有人可以告诉我,如果我尝试了一些可能不可能的事情(可能我做得不对)?或者,如果有什么我遗失的?

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

1 个答案:

答案 0 :(得分:1)

authorized_keys包含字段选项,键类型,base64编码键注释。在您的示例中未提及选项(可选且不需要)。最后一部分是没有真正使用的评论。

HostB 上修改〜用户B / .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@HostBssh -i <yourPrivateKey> UserB@HostB

  2. 如果您使用的是Putty,则可能需要将私钥导入Putty密钥生成器并另存为“.ppk”文件。在主机名中指定UserB@HostB,然后在“连接”下输入&gt; SSH - &gt;验证 - &gt;私钥...浏览到“.ppk”文件。