# 配置sshd服务
SSH(Secure Shell)协议是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux操作系统的首选方式。在此之前,一般使用FTP或Telnet协议来进行远程登录,但是因为它们以明文的形式在网络中传输账户密码和数据信息,所以很不安全,很容易受到黑客发起的中间人攻击,轻则篡改传输的数据信息,重则直接截取服务器的账户密码。
想要使用SSH协议来远程管理Linux操作系统,则需要部署配置sshd服务。sshd服务是基于SSH协议开发的一款远程管理服务程序,不仅使用起来方便快捷,还能够提供两种安全验证的方法:
• 基于口令的验证—用账户和密码来验证登录。
• 基于密钥的验证—需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较,该方式相对安全。
前面曾多次强调“Linux操作系统中的一切都是文件”,因此在Linux操作系统中修改服务程序的运行参数,实际上就是在修改程序配置文件。sshd服务的配置信息保存在/etc/ssh/sshd_config文件中。运维人员一般会把保存有主要配置信息的文件称为主配置文件,而配置文件中有许多以#开头的注释,要想让这些配置参数生效,需要在修改参数后再去掉前面的#。
在CentOS 7中默认安装并启用sshd服务。接下来使用ssh命令进行远程连接,其格式为【ssh [参数] 主机IP地址】。要退出登录则执行exit命令。
【ssh 192.168.88.188】
然后输入远程主机ROOT管理员的密码即可远程登录到远程主机。
【exit】
禁止以ROOT管理员的身份远程登录到服务器可以大大降低被黑客暴力破解密码的概率。下面进行相应配置。首先使用Vim编辑器打开sshd服务的主配置文件,然后把第48行#PermitRootLogin yes参数前的#去掉,并把参数值yes改成no,这样就不再允许ROOT管理员远程登录了。记得最后保存文件并退出,具体如下。
【vim /etc/ssh/sshd_config】
………………省略部分输出信息………………
46
47 #LoginGraceTime 2m
48 PermitRootLogin no
49 #StrictModes yes
………………省略部分输出信息………………
需要注意的是一般的服务程序并不会在配置文件修改之后立即获得最新的参数。如果想让新配置文件生效,则需要手动重启相应的服务程序。最好也将这个服务程序加入开机启动项,这样系统在下一次启动时,该服务程序便会自动运行,继续为用户提供服务。
【systemctl restart sshd】
【systemctl enable sshd】
这样一来,当ROOT管理员再来尝试访问sshd服务时,系统会提示不可访问的错误信息。虽然sshd服务的参数相对比较简单,但这就是在Linux操作系统中配置服务程序的正确方法。
【ssh 192.168.88.188】
root@192.168.88.188's password:此处输入远程主机root管理员的密码
Permission denied, please try again.
加密是对信息进行编码和解码的技术,它通过一定的算法(密钥)将原本可以直接阅读的明文信息转换成密文形式。密钥就是密文的钥匙,有私钥和公钥之分。在传输数据时,如果担心被他人监听或截获,就可以在传输前先使用公钥对数据进行加密处理,然后再进行传输。这样,只有掌握私钥的用户才能解密这段数据,除此之外的其他人即便截获了数据,也很难将其破译为明文信息。
总之,在生产环境中使用密码进行口令验证终究存在着被暴力破解或嗅探截获的风险。如果正确配置了密钥验证方式,那么sshd服务将更加安全。
第1步:在客户端主机中生成密钥对。
【ssh-keygen】
第2步:把客户端主机中生成的公钥文件传送至远程主机。
【ssh-copy-id 192.168.1.10】
或者采用【cd /root/.ssh】
【 scp id_rsa.pub root@192.168.1.106:/root/.ssh/authorized_keys】
第3步:在服务器端192.168.1.106
【cd /root/.ssh】
【ls -l】
【chmod 600 authorized_keys】
第4步:对服务器进行设置,使其只允许密钥验证,拒绝传统的口令验证方式。记得在修改配置文件后保存并重启sshd服务。
【vim /etc/ssh/sshd_config 】
………………省略部分输出信息………………
64
65 PasswordAuthentication no
66
………………省略部分输出信息………………
【systemctl restart sshd】
第5步:在客户端尝试登录到服务器,此时无须输入密码也能成功登录。
【ssh root@192.168.1.106】
Last login: Mon Apr 13 19:34:13 2017