我有一个Windows作为我的主要操作系统。 使用VMware播放器,我将Ubuntu服务器12.4设置为访客机器。 Ubuntu服务器有“ubuntu”用户。
我创build了一个新的EC2实例+安装程序密钥。 从Windows机器上,当我使用腻子+ 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 – 请注意,我必须使用直接path的密钥,否则,我会得到Warning: Identity file NAME.pem not accessible: No such file or directory. Permission denied (publickey). Warning: Identity file NAME.pem not accessible: No such file or directory. Permission denied (publickey).
请指教。 谢谢!
将EC2 pem密钥添加到SSH
ssh-add〜/ .ssh / KEY_PAIR_NAME.pem
默认情况下,SSH客户端将在~/.ssh/查找名为id_rsa , id_dsa和id_ecdsa密钥。 如果您的密钥没有这样命名,您需要像命令行一样在-i命令行中指定它,或者在客户端configuration中指定它。
您可以添加类似于~/.ssh/config以便在使用EC2时自动select此项:
Host *.compute-1.amazonaws.com IdentityFile ~/.ssh/ec2_rsa
你如何命名你的私钥? 它应该有默认的id_rsa文件名(把pem文件重命名为/home/ubuntu/.ssh/id_rsa)
您可以使用ssh-agent和ssh-add来避免必须明确指定私钥。
您可以将这些命令放在.profile或.bashrc以便在您每次login时执行它们。您可以在本文底部find示例启动脚本。
ssh客户机根据/etc/ssh/ssh_config设置的configuration查找identify file 。 因此,您可以在那里指定身份文件,并记住您可以在ssh客户端configuration文件中列出多个身份文件。 从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所build议的那样,您可以将私钥放在/ home / ubuntu / ssh / id_rsa中,并且无需在命令行中指定即可进行连接。 如果该文件名已经存在并且保存了另一个私钥,您仍然可以在IdentityFile参数中自定义您的ssh客户端configuration文件。