【问题标题】:Connecting with SSH to Amazon EC2 requires pwd使用 SSH 连接到 Amazon EC2 需要 pwd
【发布时间】:2013-11-10 14:00:12
【问题描述】:

我刚刚启动了一个新的 Amazon AWS EC2 实例。它是一个 Suse 服务器。

我正在尝试使用我的私钥通过 SSH 连接到它。它已“永久添加”到我的“已知主机列表”中。用我的私钥。

然而——

我没有登录到服务器。它正在请求密码。虽然它应该在没有密码的情况下使用我的私钥。 (如此处所述:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

我该怎么办?

--

更多细节:

我用调试再次运行它:添加-vssh -v -i ...

在我被要求输入密码之前,这些是 shell 中的最后几行(到这里为止似乎还不错):

    debug1: Authentications that can continue: publickey,keyboard-interactive
    debug1: Next authentication method: publickey
    debug1: Trying private key: my-private-key.pem
    debug1: read PEM private key done: type RSA
    debug1: Authentications that can continue: publickey,keyboard-interactive
    debug1: Next authentication method: keyboard-interactive

【问题讨论】:

    标签: amazon-web-services ssh amazon-ec2 private-key


    【解决方案1】:

    我刚刚解决了这个问题。这是一种解决方法。问题可能出在所使用的服务器类型上,Suse。我使用ec2-user 作为用户名,但对于不同的服务器可能会有所不同。这是适用于 Amazon Linux AMI(我相信也适用于 Ubuntu)的版本,但显然不适用于 Suse。 我停止(/终止)了这个实例,而是启动了一个新的 AMI Amazon Linux 服务器实例。

    在那里连接到 SSH 就像一个魅力。使用ssh -v -i my-private-key.pem ec2-user@publicaddressblahblah.compute.amazonaws.com 这里没有要求我提供密码。

    【讨论】:

      【解决方案2】:

      如果你的本地机器是 Linux

      您要确保的第一件事是将密钥加载到ssh-agentssh-add(在您的客户端计算机上)。

      08:10:51 ~$ ssh-agent
      SSH_AUTH_SOCK=/var/folders/ps/1dvr90bd6p3blnyrnpyxnryhv45qg1/T//ssh-K8VbUYmYYj4w/agent.9087; export SSH_AUTH_SOCK;
      SSH_AGENT_PID=9088; export SSH_AGENT_PID;
      echo Agent pid 9088;
      

      运行每一行(以声明您需要的变量)。然后运行ssh-add

      08:17:33 ~$ ssh-add
      Enter passphrase for /Users/kyle/.ssh/id_rsa:
      Identity added: /Users/kyle/.ssh/id_rsa (/Users/kyle/.ssh/id_rsa)
      

      将所有内容放在一行中:

      $ eval `ssh-agent`; ssh-add
      

      确保您加载正确的密钥的解决方法

      您可以使用-i 选项告诉 SSH 加载特定密钥。

      $ ssh -i ~/.ssh/other_rsa ec2-user@<ip>
      

      用户名问题

      如果这是 Amazon Linux 机器,则用户为 ec2-user。对于某些 AMI,他们设置了其他用户(ubuntu 上的ubuntu)。检查文档以查看他们是否有任何特定要求。

      $ ssh ubuntu@IP
      

      【讨论】:

        【解决方案3】:

        在尝试使用用户“root”时,它对我有用。

        ssh -i root@server-name

        文档说用户可以是 ec2-user 或 root: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

        【讨论】:

          猜你喜欢
          • 2013-04-26
          • 2012-02-17
          • 2015-06-22
          • 2013-05-30
          • 2020-03-01
          • 2015-06-28
          • 1970-01-01
          • 1970-01-01
          • 2013-10-29
          相关资源
          最近更新 更多