作为一名运维人员,我们首先要保证服务器的安全。而用户登录系统有两种方式,密码和密钥,毫无疑问,使用密钥登录更安全一些。
下面设置root用户只能使用密钥登录,不能使用密码登录。
测试工具:RHEL6.6,Xshell
步骤一:生成密钥
打开Xshell,在菜单栏中点击Tools按钮,选择New User key Wizard。
可看到密钥生成界面,选择RSA加密算法,密钥长度这里设置成2048。
密钥已经生成,选择Next。
输入密钥名称,以及密钥加密的密码,继续下一步。
现在就可以看到公钥信息了,将公钥复制保存下来。
步骤二:上传公钥
1> 在root目录下创建隐藏目录.ssh,并在此目录下创建authorized_key文件,并将事先生成的公钥粘贴到authorized_keys文件中。
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
2>修改权限
chmod 600 ~/.ssh/authorized_keys
chmod 700 .ssh/
3>不需要清空防火墙规则,关闭selinux
修改/etc/selinux/config配置文件中SELINUX=disabled
4>修改sshd配置文件,去掉#注释,使其支持密钥认证。
RSAAuthentication yes
PubkeyAuthentication yes
Port 22
5>重启sshd服务,使生效
/etc/init.d/sshd restart
步骤三:配置Xshell使用密钥登录
填写Name和Host,然后点击Authentication。
Method选择Public Key,UserName填写root,User Key选择先前生成的密钥,并在Passphrase栏内填入给密钥加密的密码。
选择密钥文件
步骤四:测试是否可用设置的公钥密码登录
可以看到可以使用root用户密码登录,也可用Public Key登录,先测试下能否用Public Key登录,能登录则进行步骤五。
步骤五:配置禁用root密码登录
注意:上一步骤测试成功后,可进行此步骤。
1> 找到/etc/ssh/sshd_config文件中PasswordAuthentication 和PermitRootLogin,将其修改为
PermitRootLoginno##禁止root登录
PasswordAuthentication no ##不能用密码登录方式,只能用密钥方式
2> 重启sshd服务
/etc/init.d/sshd restart
可看到只能使用Public Key登录的选项。
通过上述设置,即使别人获取了root密码也不可以登录,用别的用户的密码也不能登录,没有公钥也是无法登录的,切记保管好公钥文件。没有公钥文件,这台服务器就要重装了!!!根本无办法远程连接上去,没有公钥文件!!!!这样便进一步保正了服务器的安全。
红色的配置项需要注意,服务器的端口最好用别的端口不要用22端口,可以考虑改一下 Port 22这个配置项为别的端口号,最好不要用默认的22端口
补充
SSH-Clients一般用minimal安装方式的时候已经安装了,当然如果真的没有的话就需要安装
1\先在A机器上安装SSH-Clients
yum install –yopenssh-clients
CentOS6.6的镜像
[root@steven ~]# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
第二个问题
改了端口之后需要加端口号
ssh root@192.168.1.40-p 2222
A、B两台LINUX用密钥互相访问
1\先在A机器上安装SSH-Clients
yum install –y openssh-clients(查看SSH版本 ssh -V)
2\运行ssh-keygen 命令产生公钥和私钥(可以不输入密码)
3\用cat /root/.ssh/id_ras.pub 将查询出的公钥复制备用
4\连接到B机的的终端,
创建.ssh目录mkdir /root/.ssh
修改权限为700 chmord 700
编辑/root/.ssh/authorized_keys 文件 vi /root/.ssh/authorized_keys
刚才在A机上复制的公钥粘贴到authorized_keys中,
5\修改authorized_keys的权限为600 chmod 600 /root/.ssh/authorized_keys
6\暂停B机的selinux setenforce 0 getenforce disabled
7\禁用selinux的启动 VI /etc/selinux/config 将其中的 SELINUX=enforcing 改为 SELINUX=disabled保存退出。退出B终端
8\在A终端上运行 ssh B机的IP 此时就可以用密钥登录B机
9\在B机上重复1-8步就可以实现互相用密钥登录