使用 .pem 文件通过 SSH 连接

184

我想知道如何使用 .pem 文件连接到任何服务器上的 SSH。

目前我正在执行以下命令:

ssh user@mydomain.example

我应该使用哪个选项?

7个回答

303
使用-i选项:
ssh -i mykey.pem myusername@mydomain.example

此答案中所述,此文件需要设置正确的权限。ssh man page中提到:

如果私钥文件可以被其他人访问,SSH将会忽略它。

您可以使用以下命令更改权限:
chmod go= mykey.pem

那就是,将组和其他人的权限设置为空权限列表。
如果您将来要多次使用此密钥连接到此服务器,那么一次性进行配置可能是值得的。打开文件~/.ssh/config(如果不存在,请创建),然后添加以下内容:
Host mydomain.example
    IdentityFile /path/to/mykey.pem
    User myusername

现在你只需输入ssh mydomain.example,它将使用指定的密钥文件和用户名。有关更多详细信息,请参阅ssh_config man page

1
我只是想指出,如果您不是root用户,您应该对.pem文件进行chmod操作,并为您的用户启用读取权限。 - Ionut Ciuta
1
这只涉及方程式的客户端。要设置服务器,您需要将公钥复制到~/.ssh/authorized_keys文件中。您可以通过以下方式从本地计算机执行此操作:"ssh-copy-id -i ~/mykey.pub user@mydomain.com"。 - Todd Walton
如果端口不同 - ssh -i mykey.pem user@mydomain.com -p 2222 - Koustav

73
chmod 400 mykey.pem

ssh -i mykey.pem user@mydomain.example

将使用.pem文件通过SSH连接到任何服务器。


7
"chmod 400"解决了以下问题: 'some_file.pem' 的权限为0777,太开放了。 你的私钥文件不应该被其他人访问。 这个私钥将被忽略。 - pantos27

26

如果用户使用Ubuntu,则可以使用以下方法连接到远程服务器:

chmod 400 mykey.pem

ssh -i mykey.pem ubuntu@your-ip

18

连接到 AWS AMI 的终端命令:

chmod 400 mykey.pem

ssh -i mykey.pem ec2-user@mydomain.example

6
您可以使用以下命令连接到 AWS ec-2 实例。
chmod 400 mykey.pem

ssh -i mykey.pem username@your-ip

默认情况下,机器名称通常类似于ubuntu,因为通常Ubuntu机器用作服务器,所以以下命令在这种情况下将起作用。

ssh -i mykey.pem ubuntu@your-ip

4

如果您仍然收到以下错误消息:

从端口22断开连接的34.219.50.0:2个:太多的身份验证失败。 从端口22断开与34.219.50.0的连接

  1. 编辑位于~/.ssh/config的SSH配置并在末尾添加新记录
Host mydomain.example
   User ubuntu
   IdentityFile /home/you/path-to-pem/key.pem
   IdentitiesOnly yes
  1. 执行简短命令:ssh mydomain.example

0

对我有用的解决方法是运行:sudo chown $USER: {.pem_file}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接