SSH服务支持一种安全认证机制,即密钥认证。所谓的密钥认证,实际上是使用一对加密字符串,一个称为公钥(publickey), 任何人都可以看到其内容,用于加密;另一个称为密钥(privatekey),只有拥有者才能看到,用于解密。通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。 ssh的密钥认证就是使用了这一特性。服务器和客户端都各自拥有自己的公钥和密钥。如何使用密钥认证登录Linux服务器呢?
1. 生成密钥对 2. 保存公钥到服务器中 1. 新建文件夹 /.ssh mkdir /root/.ssh 2. 修改/.ssh文件夹权限 chmod 700 /root/.ssh 3. 把公钥复制到文件夹下的authorized_keys文件中 vi /root/.ssh/authorized_keys 4. 关闭selinux防火墙如果不关闭selinux, 使用密钥登陆会提示 “Server refused our key”
setenforce 0这个只是暂时命令行关闭selinux, 下次重启Linux后selinux还会开启。
永久关闭selinux防火墙的方式:把/etc/selinux/config文件中的“SELINUX=enforcing”修改成“SELINUX=disabled”,并且保存退出
3. 验证是否设置成功 1. 为当前会话设置私钥 2. 把用户身份验证中的方法改成public key 3. 选择刚才生成并自动保存的私钥 4. 输入刚刚生成密钥对时的密码 5. 确定登陆如果能自动登陆进来,那么说明密钥认证设置成功了!
XShell连接CentOS 7.2显示中文乱码问题的解决方法
VMware下Ubuntu虚拟机NAT模式连接Xshell