2013-01-09 121 views
40

我创建了一个新的密钥对并将其下载到我的mac,然后使用该密钥对和我的安全组建立一个新的Amazon Linux AMI服务器。现在我需要将我下载到我的用户文件夹中的.ssh文件中的密钥对.pem文件?不过,由于名称的原因,我无法创建名为“.ssh”的文件夹。通过SSH连接到亚马逊aws linux服务器

我在哪里把密钥对放在我的mac上?然后需要什么chmods或其他命令从我的Linux bash连接到服务器?我知道“ssh我的公共DNS”,但还有什么其他权限或其他任何我应该知道的?这是一个新手问题。谢谢。

回答

67

您需要将密钥对放在{your home directory} /。ssh中。如果该文件夹不存在,请创建它。一旦你把密钥对放在那里,你必须改变文件的权限,这样只有你的用户才能读取它。 启动终端输入

chmod 600 $HOME/.ssh/<your keypair file> 

限制访问该文件,然后限制访问该文件夹类型

chmod 700 $HOME/.ssh 

你必须限制访问,因为OpenSSH的协议不会让您使用其他人可以查看的密钥。

然后登录到您的实例,从终端则需要输入

ssh -i <your home directory>/.ssh/<your keypair file> [email protected]<ec2 hostname>

+3

我觉得你的意思是〜/ .ssh而不是/.ssh – Tuim

+0

你说得对,我的错。谢谢 – jarriett

+0

这就是问题的一部分。我不能创建一个名为“.ssh”的文件夹,因为名称中的句号是不允许的。我如何创建该文件夹?感谢您的上述答复。 – brno792

58

你也可以创建一个文件的〜/ .ssh/config中 搭配chmod它644 然后在里面可以添加类似这

host mybox-root 
    Hostname [the IP or dns name] 
    User root 
    IdentityFile ~/.ssh/[your keypair here] 

那么你可以做

$ SSH myBox上根

,您将更容易登录。

+0

伟大的附加答案,谢谢。 – Air

+0

很好的答案。我会鼓励大家遵循这个! –

-1

有人问在Mac上的一个简单的方法来创建的〜/ .ssh文件夹是运行命令的ssh-凯基,然后使用下面的设置...

A.

macbook-air$ ssh-keygen 
Generating public/private rsa key pair. 
Enter file in which to save the key (/Users/sam/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/sam/.ssh/id_rsa. 
Your public key has been saved in /Users/sam/.ssh/id_rsa.pub. 

B.然后创建:

touch ~/.ssh/authorized_keys 

C.修复权限:

chmod 600 ~/.ssh/authorized_keys 

D.AWS密钥复制到该文件:

cp AWS_key.text ~sam/.ssh/authorized_keys 

创建EC2实例

E.然后测试的ssh来AWS Linux服务器的时候#你将有可能挽救这个SSH密钥早些时候 - 你会看到这样的错误:

ssh -i ./authorized_keys [email protected] 

请以用户“ec2-user”而不是用户“root”身份登录。

F.重新尝试,它应该与允许用户AWS“EC2用户”工作:

ssh -i ./authorized_keys [email protected] 
     __| __|_ ) 
     _| ( / Amazon Linux AMI 
     ___|\___|___| 

https://aws.amazon.com/amazon-linux-ami/2014.09-release-notes/ 
9 package(s) needed for security, out of 12 available 
Run "sudo yum update" to apply all updates. 

希望这有助于,一切顺利。

+0

这是不正确的。 〜/ .ssh/authorized_keys文件用于包含用户的公钥,该用户可以使用它所在的服务器进行身份验证,而不是连接到外部服务器。 –