账号密码登陆的方式存在一定的风险,如果服务器是在线上的话就更少不了外来攻击,使用SSH登陆能有效防止攻击成功的几率。
连接Centos服务器工具:FinalShell
接下来我们开始吧~
1.首先使用root账号登录centos
生成密钥和私钥文件,默认保存在/root/.ssh/目录
ssh-keygen -t rsa
执行上面的命令会出现3次的确认步骤,如果不需要设置就直接回车跳过
Enter file in which to save the key (/root/.ssh/id_rsa):
该命令提示的意思是:让我们定义私钥的存放路径,默认存在的路径是在/root/.ssh/id_rsa的下面
Enter passphrase (empty for no passphrase):
该命令提示的意思是:定义私钥的密码,一般为了免密默认的留空,直接的回车
Enter same passphrase again:
该命令提示的意思是:确认密码
2.进入/root/.ssh目录
[root@localhost ~]# cd /root/.ssh/
[root@localhost .ssh]# ll
-rw-------. 1 root root 1675 Mar 2 11:02 id_rsa(私钥)
-rw-r--r--. 1 root root 392 Mar 2 11:02 id_rsa.pub (公钥)
-rw-r--r--. 1 root root 392 Mar 2 11:37 authorized_keys (公钥配置文件)
3.将公钥(.pub文件)内容覆盖到authorized_keys文件
cat id_rsa.pub >> /root/.ssh/authorized_keys
4.更改文件权限
[root@localhost ~]$ chmod 600 /root/.ssh/authorized_keys
[root@localhost ~]$ chmod 700 /root/.ssh
5.把私钥文件(id_rsa)提取出来保存到本地
以后登录就仅依靠这个私钥文件和用户名来登录,如果私钥设置了二级密码则需要输入二级密码,没有设置就直接登录
6.修改SSH配置文件
PasswordAuthentication是是否允许密码登录,所有配置和测试成功后才关闭密码验证,否则就再也没有办法登上服务器了.
vim /etc/ssh/sshd_config
修改配置(没有的添加,有的修改)
RSAAuthentication yes # 开启密钥登入的认证方式
PubkeyAuthentication yes # 开启密钥登入的认证方式
PermitRootLogin yes #此处请留意 root 用户能否通过 SSH 登录,默认为yes:
PasswordAuthentication yes #当我们完成全部设置并以密钥方式登录成功后,可以禁用密码登录。
这里我们先不禁用,先允许密码登陆
7.重启SSH服务
service sshd restart
8.全部操作完成后重启服务器
重启完成使用finalshell工具的公钥的方式连接
登录成功后可以尝试将6步的PasswordAuthentication的yes改成no,先不要退出现在的连接(每次修改完配置都需要执行7步骤),新建一个连接测试输入正确的密码是否登陆成功,认证失败且使用公钥的登录方式登陆成功则配置成功了,如果密码认证成功则配置没有成功,请从第一部开始检查哪里错了