在亚马逊配置服务器后,配置ssh 公钥登录。并禁止密码登录。


首先在创建完成后会有一个密钥文件,通过密钥文件登录,xxx代表你的服务器信息

ssh -i "xxx.pem" xxx@xxx.xx.compute.amazonaws.com

登录成功后,创建root的密码,输入

sudo passwd root

按照提示,输入两次密码 切换账号

su root

编辑登录方式配置文件

vim /etc/ssh/sshd_config

PasswordAuthentication no 改为 PasswordAuthentication yes (如果不想打开密码登录可以忽略这个步骤) 然后,重新读取配置文件

sudo /sbin/service sshd restart

如果要修改ec2-use这个用户的密码。可以和上面修改root密码一样的步骤来修改(ec2-user为你的服务器用户):

passwd ec2-user

其实,最主要就是编辑 /etc/ssh/sshd_config 这个文件,自己可以根据注释灵活配置。比如允许通过ssh公钥登录,就把 PubkeyAuthentication 改为 yes,禁止密码登录,就把 PasswordAuthentication 改为 no。多项结合,可以灵活配置,允许公钥禁止pem,禁止密码,允许密码,等等,附上一些这个文件中其他配置项:

# 允许通过密码登录
PasswordAuthentication no
# 是否允许PAM密钥文件登录
UsePAM no
# 打开root登录权限:
PermitRootLogin yes
# 通过RSA认证
RSAAuthentication yes
# 允许pubKey(id_rsa.pub)登录
PubkeyAuthentication yes
# key信息列表所在位置
AuthorizedKeysFile      .ssh/authorized_keys

编辑相关文件权限

chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys

最后,将允许登录的客户端公钥添加进去,在这个文件中加入就可以了

~/.ssh/authorized_keys

修改完成后

sudo /sbin/service sshd restart

service sshd restart

重载配置

完成!