0

我刚刚启动了一个新的 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
4

3 回答 3

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 我在这里没有被要求提供密码。

于 2013-11-10T14:15:26.473 回答
0

如果您的本地机器是 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
于 2013-11-10T14:18:43.073 回答
0

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

ssh -i root@server-name

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

于 2014-07-28T19:32:11.430 回答