AWS ec-2基于SSH连接以及初始化指南

概述

首先我们需要先了解一下ssh的连接原理。
ssh大概就是,你的本地计算机生成了一对密钥,一个叫做私钥,一个叫做公钥。然后你把你的公钥上传到远端服务器其中一个user下的.ssh文件夹中。
每次ssh连接时,服务器就会看自己的公钥和你计算机的私钥能不能对的上,对的上就可以连接。
而刚创立AWS的ec-2后,他会给你一个默认的用户,以及你下载的这个默认用户的私钥,一个.pem文件。我们的整体流程如下:

使用下载的私钥ssh到ec-2的默认用户。
在ec-2上创建一个新的账户,拥有管理员和ssh权限。
在本地生成一组ssh密钥对,将公钥上传到新建用户的.ssh文件夹下
成功连接

第零步,部署ec-2

具体教程应该有很多,至于部署哪个系统,多大内存之类的,就看各位需求了。

第一步,使用默认账号连接ssh

在部署ec-2的时候,aws会让你选择一个密钥或者重新创建。如果没有创建过就可以创建一个,选择pem文件,他会让你下载一个.pem文件, 这个文件一定要保存好。
随后呢,到本地的命令行,打开bash,输入下面的命令。

$ ssh -i </path/to/default-privatekey.pem> ec2-user@<ec2-xx-xx-xx-xx.compute-1.amazonaws.com>

AWS也良心的给了教程:
AWS ec-2基于SSH连接以及初始化指南

如果显示这个,则说明登陆成功!
AWS ec-2基于SSH连接以及初始化指南

出了任何的bug的话,欢迎contact我或者写在评论区!

现在我们是用ec-2的默认用户登录的,但是我们需要创建自己的用户以及自己的ssh密钥

第二步 创建拥有管理员权限的用户

首先确保你成功登陆了ec-2 在远端执行

# 填入你的名字和用户名,并设置密码。(如果显示密码过于简单的话再输入一遍就可以了,它不会和你过不去)
$ sudo useradd -r -m -c "<My Full Name>" <usernameHere>
$ sudo passwd <usernameHere>

然后就是将你的用户添加到管理员列表里

# 填入你的名字和用户名,并设置密码。(如果显示密码过于简单的话再输入一遍就可以了,它不会和你过不去)
$ sudo useradd -r -m -c "<My Full Name>" <usernameHere>
$ sudo passwd <usernameHere>
# 随后打开visudo
$ sudo visudo

打开文件后往下翻,到这个位置:
AWS ec-2基于SSH连接以及初始化指南
root下面添加你的用户名:
AWS ec-2基于SSH连接以及初始化指南

然后输入esc :wq保存并退出

# 然后是用su命令切换到你的用户名
$ su <username here>

# 切换到你的home 目录
$ cd

# 创建 .ssh 配置目录并且修改权限
$ mkdir .ssh
$ chmod 700 .ssh

ok, 目前位置我们的管理员用户就创建完成了,现在不要关闭这个terminal。在本地打开一个新的终端,我们要创建自己的密匙对了。

第三步 创建本地密匙对,上传公钥

# **本地!**终端运行
$ ssh-keygen

生成本地的密匙对,现在在你本地用户目录的.ssh文件夹下应该有两个文件:
AWS ec-2基于SSH连接以及初始化指南
这个id_rsa就是私钥,而.pub就是公钥

现在,回到远程终端!

到远程终端用户目录

# 创建authorized_keys并且设置权限
$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys

# 编辑authorized_keys文件夹
$ vim .ssh/authorized_keys

然后,复制你本地的.pub也就是公钥,到这个文件上。然后:wq保存并退出

然后在本地打开一个新的端口,看你是否可以链接到远程服务器:

$ ssh <username here>@<ec2-xx-xx-xx-xx.amazonaws.com>

大功告成!

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...