SSH采用秘钥进行登录

常用Linux的盆友都知道,ssh默认都是用密码登陆的,安全性也可想而知的差,为了服务器的安全性,我们采用证书来登陆服务器,但是也不是绝对的安全(从来就没有绝对安全的系统),但是可以进一步的增强服务器的安全性,对于用者来说也非常的方便,只需维护好私钥即可,下面我们就来修改ssh的配置,以下代码都是在CentOS下可运行。

一.通过以下步骤来增强服务器的安全

  1. 普通账户禁止使用su,sudo功能
  2. SSH只能使用key登陆,禁止使用密码来登录
  3. wheel组允许使用su 来使用root权限
  4. 仅允许指定的用户使用sudo来获得root权限

二. 修改用户权限

用root登陆服务器,创建一个普通用户加wheel组

$ useradd -g wheel tadashi

设置仅允许wheel组用户可以使用su

$ vi /etc/pam.d/su

找到下面这行,去掉行首的”#”

#auth required pam_wheel.so use_uid

变为

auth required pam_wheel.so use_uid

保存

在/etc/login.defs末尾添加”SU_WHEEL_ONLY yes”,并修改sudoers 为账户tadashi设置sudo使用权限,然后将文件权限修改回去

$ echo "SU_WHEEL_ONLY yes" >> /etc/login.defs
$ chmod 740 /etc/sudoers
$ echo "tadashi ALL=(ALL) ALL" >> /etc/sudoers
$ chmod 440 /etc/sudoers

到此我们别的普通用户就不能用su sudo命令了。

三.为用户生成ssh公秘钥

切换到tadashi用户上去,并用ssh-keygen来生产公秘钥,第一个提示是输入钥匙的文件名称,可以保持默认,默认的文件名是(id_rsa),回车,这时会提示输入一个口令然后再确认输入一次即可

$ su tadashi
$ ssh-keygen -t rsa

这时会生成两个文件id_rsa和id_rsa.pub 在/home/tadashi/.ssh/目录下,接下来将公钥输出到该目录下的authorized_keys文件上,并删除公钥和设置authorized_keys的权限(权限设置不对会引起不能用秘钥登陆)

$ cd ~/.ssh
$ cat id_rsa.pub >> authorized_keys
$ rm -rf id_rsa.pub
$ chmod 400 authorized_keys

四.修改ssh配置使其生效

$ exit
$ vi /etc/ssh/sshd_config

找到如下位置进行修改

#禁止root登录
PermitRootLogin no
#指定可以登录的用户
AllowUsers tadashi
StrictModes yes
#关闭密码验证
PasswordAuthentication no
#打开RSA验证相关设置
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
#关闭 GSSAPI验证
GSSAPIAuthentication no

重启sshd服务,使其配置生效

$ service sshd restart

发表评论

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