9.2 远程控制服务
9.2.1 配置sshd服务
SSH(Secure Shell)是一种能够已安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式。在此之前,一般使用FTP或Telnet来进行远程登录。但是因为他们以明文的形式在网络中传输账户密码和数据信息,容易被篡改信息和暴露账户密码。
sshd服务程序是使用ssh协议开发的一款远程管理服务程序,提供了两种安全验证方法:
基于口令的验证:用账户和密码来验证登录
基于密钥的验证:需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较,该方式更安全
sshd服务配置文件中包含的参数以及作用
Port 22
默认的sshd服务端口
ListenAddress 0.0.0.0
设定sshd服务器监听的IP地址
Protocol 2
SSH协议的版本号
HostKey /etc/ssh/ssh_host_key
SSH协议版本为1时,DES私钥存放的位置
HostKey /etc/ssh/ssh_host_rsa_key
SSH协议版本为2时,RSA私钥存放的位置
HostKey /etc/ssh/ssh_host_dsa_key
SSH协议版本为2时,DSA私钥存放的位置
PermitRootLogin yes
设定是否允许root管理员直接登录
StrictModes yes
当远程用户的私钥改变时直接拒绝连接
MaxAuthTries 6
最大密码尝试次数
MaxSessions 10
最大终端数
PasswordAuthentication yes
是否允许密码验证
PermitEmptypasswords no
是否允许空密码登录(很不安全)
使用ssh命令进行远程连接,其格式为“ssh [参数] 主机IP地址”,要退出登录则执行exit命令
禁用以root管理员的身份远程登录到服务器。 使用vim文本编辑器打开sshd服务的主配置文件,然后把第48行#PermitRootLogin yes 参数前面的井号(#)去掉,并把参数值yes改为no,保存并退出
重启sshd程序的服务,并加入到开机自启动
尝试以root身份登录进行验证配置效果
9.2.2 安全密钥验证
密钥即是密文的钥匙,有私钥和公钥之分。数据在传输前先使用公钥进行加密,只有掌握私钥的用户才能解密数据。
配置秘钥验证方式
(1)在客户端主机中生成“密钥对”
(2)把客户端主机中生成的公钥文件传送到远程主机
(3)对服务器进行设置,使其只允许密钥验证,拒绝传统的口令验证方式。修改配置文件后保存并重启sshd服务程序
(4)在客户端尝试登陆到服务器,此时无须输入密码也可以成功登录
9.2.3 远程传输命令(在RHEL9中SCP被弃用,推荐使用 SFTP 或 rsync 替代)
scp(secure copy)是一个基于SSH协议在网络之间进行安全传输的命令。
格式为:scp [参数] 本地文件 远程账户@远程IP地址:远程目录
cp命令只能在本地硬盘中进行文件复制,而scp不仅能够通过网络传输数据,而且所有的数据都将进行加密处理。
以绝对路径的形式写清本地文件的存放位置
scp 命令中可用的参数及作用
-v(小写)
显示详细的连接进度
-P(大写)
指定远程主机的sshd端口号
-r
用于传输文件夹
-6
使用IPv6协议
例子1:传输readme.txt文件数据到服务器的root用户的home目录
把远程主机上的文件下载到本地主机 命令格式为 "scp [参数] 远程用户@IP地址:远程文件 本地目录 "
例子2:将远程主机的系统版本信息文件下载过来
最后更新于
这有帮助吗?