作为一名运维人员,我们首先要保证服务器的安全。而用户登录系统有两种方式,密码和密钥,毫无疑问,使用密钥登录更安全一些。下面设置root用户只能使用密钥登录,不能使用密码登录。


测试工具:RHEL6.6,Xshell


步骤一:生成密钥



打开Xshell,在菜单栏中点击Tools按钮,选择New User key Wizard。

Xshell设置密钥登录,禁用管理员密码登录_xshell


可看到密钥生成界面,选择RSA加密算法,密钥长度这里设置成2048。

Xshell设置密钥登录,禁用管理员密码登录_密钥_02


密钥已经生成,选择Next。

Xshell设置密钥登录,禁用管理员密码登录_xshell_03


输入密钥名称,以及给密钥加密的密码,继续下一步。

Xshell设置密钥登录,禁用管理员密码登录_密钥_04


现在就可以看到公钥信息了,将公钥复制保存下来。

Xshell设置密钥登录,禁用管理员密码登录_ 登录 root_05


步骤二:上传公钥



1> 在root用户家目录下创建隐藏目录.ssh,并在此目录下创建以authorized_key文件,并将事先生成的公钥放入authorized_key中。

    mkdir -v ~/.ssh

    vim ~/.ssh/authorized_keys

    ......


2>修改权限

    chmod 600 ~/.ssh/authorized_keys

    chmod 700 .ssh/


3>清空防火墙规则和关闭selinux

    iptables -F

    /etc/init.d/iptables save


    setenforce 0

    修改/etc/selinux/config配置文件中SELINUX=permissive


4>修改ssh配置文件,去掉注释,使其支持密钥认证。

    RSAAuthentication yes

    PubkeyAuthentication yes


5>重启sshd服务

    /etc/init.d/sshd restart


步骤三:配置Xshell使用密钥登录



 填写Name和Host,然后点击Authentication。

Xshell设置密钥登录,禁用管理员密码登录_xshell_06


Method选择Public Key,UserName填写root,User Key选择先前生成的密钥,并在Passphrase栏内填入给密钥加密的密码。

Xshell设置密钥登录,禁用管理员密码登录_xshell_07


步骤四:测试是否可用设置的公钥密码登录



可以看到可以使用root用户密码登录,也可用Public Key密码登录,先测试下能否用Public Key密码登录,能登录则进行步骤五。

Xshell设置密钥登录,禁用管理员密码登录_xshell_08


Xshell设置密钥登录,禁用管理员密码登录_密钥_09


步骤五:配置禁用root密码登录



    注意:上一步骤测试成功后,可进行此步骤。

    1>  找到/etc/ssh/sshd_config文件中PasswordAuthentication yes,将其修改为                                              PasswordAuthentication  no 即可。

    2> 重启sshd服务

          /etc/init.d/sshd restart


可看到只能使用Public Key登录的选项。

Xshell设置密钥登录,禁用管理员密码登录_密钥_10


通过上述设置,即使别人获取了root密码也不可以登录,没有私钥也是无法登录的,切记保管好公钥文件。这样便进一步保正了服务器的安全。