亚马逊AWS虚拟服务器使用一个预先生成的 *.pem 证书文件(密钥)为客户端和服务器之间建立连接。
例如:
$ ssh -i ~/ec2.pem ubuntu@12.34.56.78
首先确定你可以以密码的形式连接远程服务器,也可以创建一个非超级管理员用户,并增加 sudo 权限[1]。
$ sudo ssh root@12.34.56.78
生成 .pem 步骤如下:
1.客户端(本地主机 )生成验证没有密码密钥对
$ ssh-keygen -t rsa -b 2048 -v
执行上述命令首先会让你输入生成密钥的文件名:我这里输入的 myPemKey ,之后一路回车。
Generating public/private rsa key pair.
Enter file in which to save the key (/home/anonymouse/.ssh/id_rsa): myPemKey
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in hetzner.
Your public key has been saved in hetzner.pub.
The key fingerprint is:
bb:c6:9c:ee:6b:c0:67:58:b2:bb:4b:44:72:d3:cc:a5 localhost@localhost
The key's randomart image is:
在执行命令的当前目录下会生成一个myPemKey.pub、myPemKey 两个文件。
2.把生成的 myPemKey.pub 通过本地命令推送到服务器端,使服务器自动添加认证这个证书
$ ssh-copy-id -i ~/myPemKey.pub root@12.34.56.78
输入你的 root 用户密码
3.测试连接
$ sudo ssh -i ~/myPemKey root@12.34.56.78
或者把 myPemKey 重命名为 myPemKey.pem
$ sudo ssh -i ~/myPemKey.pem root@12.34.56.78
4.禁用密码连接(注意:要保证 .pem 连接成功的状态下,禁用密码连接)
sudo vi /etc/ssh/sshd_config
找到这一行 #PasswordAuthentication yes
# Change to no to disable tunnelled clear text passwords
# PasswordAuthentication yes
取消前边的 # 注释,改为
PasswordAuthentication no
重启 ssh 服务
sudo service ssh restart
[1]创建一个非超级管理员用户,并增加 sudo 权限
1.添加新用户 ubuntu
sudo adduser ubuntu
系统会提示以下信息:
正在添加用户“ubuntu”...
正在添加新组“ubuntu”(1001)...
正在添加新用户“ubuntu”(1001)到组“ubuntu”...
创建主目录“/home/ubuntu”...
正在从“/etc、skel”复制文件...
输入新的 UNIX 口令:(此处大家注意,不是输入你当前用户的密码,而是输入你要创建新用户的密码)
重新输入新的 UNIX 口令:(再输一次即可)
passwd:已成功更新密码
Changing the user information for ubuntu
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
这个信息是否正确? [Y/n] y
到了这一步,新用户已经添加成功了,此时我们可以打 ls /home查看一下,如果显示 ubuntu 目录,侧代表用户创建成功。
2.添加 root 权限
sudo vi /etc/sudoers
找到
# User privilege specification
root ALL=(ALL:ALL) ALL
下边增加
ubuntu ALL=(ALL:ALL) ALL
至此,新用户添完成。
其它方法: 修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
然后修改用户,使其属于root组(wheel),命令如下:
#usermod -g root tommy