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:将远程主机的系统版本信息文件下载过来

最后更新于