【问题标题】:Can I use SSH keys in something other than PuTTy (on Mac)?我可以在 PuTTy 以外的东西(在 Mac 上)使用 SSH 密钥吗?
【发布时间】:2010-10-10 03:46:54
【问题描述】:

Bluehost 仅推荐 PuTTy。但是,是否可以在没有任何额外可见程序的情况下在 Mac 中使用 ssh 密钥?

我想轻而易举地连接到我的服务器,以便我可以在终端中控制我的服务器。

【问题讨论】:

    标签: ssh-keys


    【解决方案1】:

    当然!在 Unix 和 OS X 上,ssh-keygen 命令将为 SSH 公钥身份验证生成公钥和私钥。调用此命令的常用方法(在客户端)是:

    ssh-keygen -t rsa
    

    此命令将询问您将私钥放在哪里;默认位置为~/.ssh/id_rsa,公钥将放在同名文件中,并添加.pub扩展名(例如:~/.ssh/id_rsa.pub)。该命令还要求您为私钥创建密码(“密码短语”);你可以像我一样把它留空,因为没有密码,但我不推荐这种做法。

    在客户端计算机上拥有公钥和私钥后,您需要让服务器识别该公钥。如果你有服务器的shell访问权限,你可以使用scp上传公钥文件,然后使用ssh在服务器上运行以下命令:

    cat id_rsa.pub >> ~/.ssh/authorized_keys 
    

    如果您的托管公司没有为您提供 shell 访问权限(尽管 Bluehost 提供),或者此过程不起作用,它可能会为您提供相同功能的 Web 界面。

    一旦您的服务器设置为识别您的公钥,当客户端上的ssh 尝试使用您的私钥进行身份验证时,它将允许您无需密码即可访问。您可能仍然需要输入私钥的密码,但通常您只需为每个客户端登录会话输入一次。

    【讨论】:

    • 您是否建议创建一个无密码私钥?
    • 是的,这是一个不好的做法,但这是我通常使用的。我将编辑我的答案以解决这个问题。
    【解决方案2】:

    当然,我一直这样做。只需按照these 的指示生成 SSH 密钥并将其复制到您的服务器。这些说明应该适用于 Mac 和 Linux。

    【讨论】:

      【解决方案3】:

      SSHKeychain 非常适合这个。它不显眼地位于菜单栏上,并与 OS X 的 Keychain 和 SSH 实现无缝集成。

      您需要使用ssh-keygen,如其他答案中所述,但一旦完成,您就可以使用 SSHKeychain 来避免一直输入您的私钥密码。

      【讨论】:

      • 我不敢相信我从未听说过 SSHKeychain。等我回家试试看!
      • "Leopard has ssh-agent built" -sshkeychain.org/pipermail/users/2008-September/000238.html 我注意到当我安装 SSHKeychain 失败时,与链接中的类似。我需要 Leopard 的软件吗?
      • @Masi:我不知道,我正在使用 Tiger (10.4)。 SSHKeychain 有一段时间没有更新了,所以现在可能确实已经过时了。
      【解决方案4】:

      OpenSSH 应该可以在 OS X 上使用;打开终端并查看“man ssh”。 SSH 密钥(以不同于 PuTTY 的格式)存储在 ~/.ssh 中。在 ~/.ssh/config 中进行配置也可以让您的生活更轻松;您将可以说“使用此 $KEY 将此 $SHORTNAME 用于此 $HOST”等。

      【讨论】:

        【解决方案5】:

        在终端提示下做

        $ apropos ssh
        

        您应该会得到一份 Mac OS X 附带的与 ssh 相关的所有程序的列表。

        使用ssh* 工具,您的 ssh 密钥将存储在~/.ssh 下。 PuTTY 不错,但与标准的 OpenSSH 工具相比,它确实只在 Windows 系统上有用。

        【讨论】:

          【解决方案6】:

          当然可以!第一次运行:

          ssh-keygen
          

          然后完成这些步骤。给它一个密码等是个好主意。然后你可以:

          cat ~/.ssh/id_rsa.pub
          

          并将结果复制粘贴到 bluehost 公钥文本区域。

          【讨论】:

          • 我现在在 Bluehost 有我的密钥对。我通过“ssh username@ipAddress”连接到我的服务器,它仍然询问我的密码。我怎样才能看到差异?
          • 你让bluehost开启SSH了吗?我认为他们需要扫描一些带照片的身份证件或其他东西......
          • @Masi:Bluehost 除了给他们公钥之外,还让您在控制面板中“授权”密钥...如果您已经这样做了,那么我没有其他可提供的了。我现在在 Mac 上 sshing 到我的 Bluehost 机器,我所要做的就是给他们密钥并授权它。
          • @Mike:谢谢!它似乎工作。它不问我的密码。是安全问题吗?
          猜你喜欢
          • 2016-07-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-26
          • 1970-01-01
          相关资源
          最近更新 更多