远程控制服务:配置sshd服务,密钥验证登陆
配置sshd服务
1、概述:
SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理 Linux 系统的首选方式。在此之前,一般使用 FTP 或 Telnet 来进行远程登录。但是因为它们 以明文的形式在网络中传输账户密码和数据信息,因此很不安全,很容易受到黑客发起的中 间人攻击,这轻则篡改传输的数据信息,重则直接抓取服务器的账户密码。 想要使用 SSH协议来远程管理Linux系统,则需要部署配置sshd 服务程序。sshd是基于SSH 协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种安全验证的方法:
➢ 基于口令的验证—用账户和密码来验证登录;
➢ 基于密钥的验证—需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器, 并与服务器中的公钥进行比较;该方式相较来说更安全。
2、操作步骤:
2.1第一步:
修改主配置文件/etc/ssh/sshd_config,配置文件中有许多以 井号开头的注释行,要想让这些配置参数生效,需要在修改参数后再去掉前面的井号。
2.2第二步:
在 RHEL 7 系统中,已经默认安装并启用了 sshd 服务程序。接下来使用 ssh 命令进行远 程连接,其格式为“ssh [参数] 主机 IP 地址”。要退出登录则执行 exit 命令。
例子:
[root@localhost Desktop]# ssh 192.168.232.151
root@192.168.232.151's password:
Last login: Sat Dec 22 16:14:34 2018 from 192.168.232.137
[root@localhost ~]#
[root@localhost ~]# exit #退出ssh
logout
Connection to 192.168.232.151 closed.
[root@localhost Desktop]#
2.3第三步:功能增强型操作
如果禁止以 root 管理员的身份远程登录到服务器,则可以大大降低被黑客暴力破解密码 的几率。下面进行相应配置。首先使用 Vim 文本编辑器打开 sshd 服务的主配置文件,然后把 第 48 行左右的#PermitRootLogin yes 参数前的井号(#)去掉,并把参数值 yes 改成 no,这样就不再 允许 root 管理员远程登录了。
[root@localhost Desktop]# ssh 192.168.232.151
root@192.168.232.151's password: #此处我们是输入了正确的密码,但是由于服务器的主配置文件中设置了PermitRootLogin no,不允许 root 管理员远程登录。
Permission denied, please try again.
root@192.168.232.151's password:
Permission denied, please try again.
root@192.168.232.151's password:
【注意】一般的服务程序并不会在配置文件修改之后立即获得最新的参数。如果 想让新配置文件生效,则需要手动重启相应的服务程序(systemctl restart sshd)。最好也将这个服务程序加入到开机 启动项中(systemctl enable sshd),这样系统在下一次启动时,该服务程序便会自动运行,继续为用户提供服务。
=============================================================================================================================
SSH安全密钥验证:
1、概述:
加密是对信息进行编码和解码的技术,它通过一定的算法(密钥)将原本可以直接阅读 的明文信息转换成密文形式。密钥即是密文的钥匙,有私钥和公钥之分。在传输数据时,如果 担心被他人监听或截获,就可以在传输前先使用公钥对数据加密处理,然后再行传送。这样, 只有掌握私钥的用户才能解密这段数据,除此之外的其他人即便截获了数据,一般也很难将 其破译为明文信息。既不采用手动输入密码登陆,直接密钥验证登陆,更安全,不容易破解。
2、配置步骤:
2.1第一步:在客户端主机中生成“密钥对”。命令:ssh-keygen
2.2第二步:把客户端主机中生成的公钥文件传送至远程主机。命令:ssh-copy-id 192.168.232.151 #注意这个IP地址是将客户机生成的密钥发送到服务器的目标主机IP地址。成功登陆验证过后,便不再需要输入密码验证。
2.3第三步:对服务器进行设置,使其只允许密钥验证,拒绝传统的口令验证方式。将PasswordAuthentication yes改成PasswordAuthentication no即可。
验证:ssh 192.168.232.151
【注意】客户端生成的公钥和私钥文件存放位置。