linux基础第3节 ----配置和管理SSH服务器

配置sshd服务

        SSH(Secure shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式。FTP或Telnet是一种以明文的形式在网络中传输账户密码和数据信息,很不安全。

sshd是基于SSH协议开发的一款远程管理服务程序,提供了两种安全验证的方法,

  • 基于口令的验证-----用账户和密码来验证登录
  • 基于密钥的验证-----需要在本地生成密钥,然后把密钥对种的公钥上传至服务器,并与服务器 中的公钥进行比较;该方式相较更安全
sshd服务配置文件中包含的参数及其作用
       参数                                  作用
port 22默认的sshd服务端口
ListenAddress 0.0.0.0设定sshd服务监听的ip地址
Protocol 2SSH协议的版本号
HostKey /etc/ssh/ssh_host_keySSH协议版本为1时,DES私钥存放的位置
HostKey /etc/ssh/ssh_host_rsa_keySSH协议版本为2时,DES私钥存放的位置
HostKey /etc/ssh/ssh_host_dsa_keySSH协议版本为3时,DES私钥存放的位置
PeamitRootLogin yes是否允许root直接登录
StrictModes yes当远程用户的私钥改变时直接拒绝连接
MaxAuthTries 6最大密码尝试次数
MaxSessions 10最大终端数
PasswordAuthentication yes是否允许密码验证
PermitEmptyPassword no是否允许空密码登录(默认不允许)

sshd服务的配置文件信息保存在/etc/ssh/sshd_config文件中

 1.基于口令的验证

使用sshd服务远程连接,这里我们打开Redhat8和centos8两台虚拟机.(两台虚拟机使用一样的网络配置模式

sshd远程连接的格式为:“ssh [参数]  主机ip地址”。退出使用exit命令

通过ip a命令查询

centos8IP地址为192.168.80.129/24

 redhat8IP地址为192.168.80.128/24

 redhat8使用sshd服务远程连接centos8

使用exit命令退出

2.安全密钥验证

       加密是对信息进行编码和解码的技术,再传输数据时,如果担心被他人监听或者截获,就可以在传输前先使用公钥对数据加密处理,然后再行传送。这样,只有掌握私钥的用户次才能解密这段数据,除此之外,其他的人即便截获了数据,一般也很难将其破译为明文信息

       使用密钥验证的方式

①在redhat 8 上以用户student<普通用户>登录SSH服务器

 ②在centos 8生成"密钥对".查看公钥id_rsa.pub和私钥id_rsa

 查看生成的公钥

 查看生成的私钥id_rsa

 ③使用ssh-copy-id student@192.168.80.128   将生成的公钥文件传输到远程主机

语法格式为:ssh-copy-id 目标主机上的普通用户@目标主机ip地址

 ④把服务器redhat 8上的sshd配置文件的"PasswordAuthentication yes"   为"PasswordAuthentication no"使其只允许密钥登录,拒绝传统的口令验证

 ⑤在客户端centos8尝试使用student用户远程连接到服务器,此时无需输入密码也能成功连接。同时使用ip a 查询ip地址为192。168.80.128/24,即是redhat 8的IP地址,说明已经成功连接

 ⑥在服务器redhat 8上查看centos 8客户端的公钥是否传送成功

 3.远程传输命令

scp(secure copy)是一个基于SSH协议在网络之间进行安全传输的命令,其格式为:

"scp [参数] 本地文件 远程账户@远程IP地址:远程目录"

命令参数:

-1  强制scp命令使用协议ssh1  

-2  强制scp命令使用协议ssh2  

-4  强制scp命令只使用IPv4寻址  

-6  强制scp命令只使用IPv6寻址  

-B  使用批处理模式(传输过程中不询问传输口令或短语)  

-C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能)  

-p 保留原文件的修改时间,访问时间和访问权限。  

-q  不显示传输进度条。  

-r  递归复制整个目录。  

-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。   

-c cipher  以cipher将数据传输进行加密,这个选项将直接传递给ssh。   

-F ssh_config  指定一个替代的ssh配置文件,此参数直接传递给ssh。  

-i identity_file  从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。    

-l limit  限定用户所能使用的带宽,以Kbit/s为单位。     

-o ssh_option  如果习惯于使用ssh_config(5)中的参数传递方式,   

-P port  注意是大写的P, port是指定数据传输用到的端口号   

-S program  指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

服务端:redhat 8

客户端:centos 8

 在客户端使用这个命令,发现报错了

 出现这个的原因是客户端centos 8上没有服务端redhat 8 root用户的密钥,而且前面设置了其只允许密钥登录,拒绝传统的口令验证。所以我们这里会报错。

我们这里使用之前连接过的student用户进行传输

客户端:centos 8

 服务端:redhat 8

 如果,你想要传输到root用户,则只需要这几步

.vim /etc/ssh/sshd_config     <客户端和服务端同时开启>

 设置:PasswordAuthentication yes  也就是开启基于口令的验证

修改了配置文件,一定要重启服务

[root@localhost~]#systemctl restart sshd

Ⅱ.客户端centos 8

 Ⅲ.服务端 redhat 8

 这个时候,传输到root用户就设置完成了

  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值