如何在不明确使用 pem 密钥的情况下通过 SSH 连接到 EC2?

如何在不明确使用 pem 密钥的情况下通过 SSH 连接到 EC2?

我的主要操作系统是 Windows。使用 VMware Player,我设置了一台 Ubuntu 服务器 12.4 作为客户机。Ubuntu 服务器有“ubuntu”用户。

我创建了一个新的 EC2 实例 + 设置 pem 密钥。从 Windows 机器上,当我使用 putty+pem 密钥时 - 我可以 ssh。

我将 pem 密钥添加到我的 VMware Ubuntu 服务器(/home/ubuntu/.ssh/)此外,我还设置了以下权限: chmod 700 /home/ubuntu/.ssh chmod 600 /home/ubuntu/.ssh/*

通过 Ubuntu 服务器 - 我尝试通过 SSH 连接到 ec2 实例,但没有成功: ssh ubuntu@EC2_IP Permission denied (publickey) 。如果我明确使用 pem 密钥,它就会起作用: ssh -i /home/ubuntu/.ssh/NAME.pem ubuntu@EC2_IP - 请注意,我必须使用密钥的直接路径,否则,我会得到 Warning: Identity file NAME.pem not accessible: No such file or directory. Permission denied (publickey).

请指教。谢谢!

答案1

将 EC2 pem 密钥添加到 SSH

ssh-添加〜/.ssh/KEY_PAIR_NAME.pem

答案2

默认情况下,SSH 客户端将在 中查找名为id_rsaid_dsa和的密钥。如果您的密钥不是这样命名的,您需要像以前一样在命令行中使用 指定它,或者在客户端配置中指定它。id_ecdsa~/.ssh/-i

您可以添加类似的内容以便~/.ssh/config在 SSH 连接到 EC2 时自动选择此密钥:

Host *.compute-1.amazonaws.com
    IdentityFile ~/.ssh/ec2_rsa

答案3

您如何命名您的私钥?它应该有默认的 id_rsa 文件名(将 pem 文件重命名为 /home/ubuntu/.ssh/id_rsa)

答案4

identify filessh 客户端根据 中的配置集进行查找/etc/ssh/ssh_config。因此,您可以在那里指定身份文件,请记住,您可以在 ssh 客户端配置文件中列出多个身份文件。来自 ssh 手册页 -

    -i identity_file
         Selects a file from which the identity (private key) for public key authentication is read.  The default is ~/.ssh/identity
         for protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and ~/.ssh/id_rsa for protocol version 2.  Identity files may also
         be specified on a per-host basis in the configuration file.  It is possible to have multiple -i options (and multiple identiâ
         ties specified in configuration files).

例如,对于 RSA 密钥,默认位置是 ~/.ssh/id_rsa。正如 Andrei Mikhaltsov 所建议的,您可以将私钥放在 /home/ubuntu/ssh/id_rsa 中,这样无需在命令行中指定它即可连接。如果该文件名已经存在并包含另一个私钥,您仍然可以在参数处自定义 ssh 客户端配置文件IdentityFile

相关内容