Write the Code. Change the World.

5月 02

使用服务器的小伙伴,为了增强服务器的安全性,禁用root用户使用ssh方式登录服务器就很有必要了。这里,拿自己的centos7.4系统的服务器做小白鼠,一步一步记录操作的过程。

操作过程

  1. 创建新用户
useradd ecs-user
  1. 如果需要的话,可以设置密码(先不设置)
passwd ecs-user

  1. 秘钥生成。(记住,下边的操作必须在ecs-user用户下操作。)
ssh-keygen -t rsa #默认,一路Enter即可。
find / -name id_rsa # 找到秘钥文件位置,
cd ~/.ssh/
ls -all # 你会看到 id_rsa(秘钥) 和 id_rsa.pub(公钥) 这两个文件存在。
sz id_rsa #将id_rsa(密匙文件)保存到本地电脑,以待后边用到。可以将文件重命名为xxx.pem。如果 sz 命令不存在,请用yum安装。yum install lrzsz 很好用的一个上传和下载工具哦(win 系统方便用。mac 使用 forklift 非常不错)。
  1. 将公钥文件设置为可使用状态。
cd ~/.ssh/
mv id_rsa.pub authorized_keys #重命名
chmod 600 authorized_keys #确保authorized_keys权限是600
rm -rf id_rsa # 删除服务器上的私钥
  1. 设置sshd的配置文件,将登录方式设置为密钥登录,并禁止 root 登录,使用用户名密码登录无效。
su root
vim /etc/ssh/sshd_config
#去除 PubkeyAuthentication yes 的注释。如果没有,则添加。
#PermitRootLogin yes 改为 PermitRootLogin no (禁用root用户登录)
#PasswordAuthentication yes 改为 PasswordAuthentication no(使用用户名密码登录无效)
systemctl restart sshd #重启sshd服务

完成以上操作,千万不要直接关闭shell窗口。先另外打开一个窗口,看设置是否有效。比如root用户是否能登录,是否可以使用用户密码登录。

  1. 使用秘钥和ecs-user用户登录。
ssh -i xxx.pem ecs-user@xxx.xxx.xxx

如果觉得仅仅使用秘钥登录还不够安全(别人获取秘钥后,就可以登录了),可以设置同时使用秘钥和密码登录。操作如下。

sudo vim /etc/ssh/sshd_config
#PasswordAuthentication no 改为 PasswordAuthentication yes(要使用用户名密码登录)
#AuthenticationMethods publickey,password #后边追加这一行。(必须同时使用秘钥和用户名和密码才可以登录)
sudo passwd ecs-user #设置登录用户的密码。涉及到root权限的,登录后,可以切换到root用户。

相关查询命令

tail /var/log/secure #查看ssh登录安全日志

service sshd status #查看sshd服务的状态,包含登录成功或失败用户的记录

last -n 50 #查看最近50个成功登录的用户信息

lastb -n 50 #查看最近50个登录不成功用户信息(查看攻击ip)

参考

https://blog.csdn.net/huigher/article/details/52972013

https://www.douban.com/note/517000039/

http://blog.51cto.com/19001989/645882

方法二,使用 xshell 生成方式生成秘钥

https://www.linuxidc.com/Linux/2016-06/132268.htm

https://blog.csdn.net/bjnihao/article/details/52325322

https://www.linuxidc.com/Linux/2017-01/139361.htm

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注