RHCE SSH服务器

1. SSH概述

SSH(Secure Shell)是⼀种协议,它使⽤客⼾端-服务器架构在两个系统之间提供安全通信,并允 许⽤⼾远 程登录到服务器主机系统。和其它远程沟通协议,如 FTP 或 Telnet 不同,SSH 会加密登录会 话,它会阻⽌⼊侵者从连接中收集未加密的密码。

SSH(安全 Shell)是⼀个登录远程机器并在该机器上执⾏命令的程序。SSH 协议通过不安全的 ⽹络在两 个不可信主机间提供安全加密的通讯。您还可以通过安全频道转发 X11 连接和任意 TCP/IP 端 ⼝。

系统范围的 SSH 配置信息保存在 /etc/ssh/ ⽬录中。

⽤⼾特定的 SSH 配置信息保存在⽤⼾主⽬录中的 ~/.ssh/ 中。

2. OPENSSH概述

OpenSSH 是 Linux、UNIX 和类似操作系统⽀持的 SSH 协议的实现。它包括 OpenSSH 客⼾端和 服务器需要的核⼼⽂件。

OpenSSH 组件由以下⽤⼾空间⼯具组成:

        ssh 是⼀个远程登录程序(SSH 客⼾端)

        . sshd 是⼀个 OpenSSH SSH 守护进程。

        scp 是⼀个安全的远程⽂件复制程序。

        sftp 是⼀个安全的⽂件传输程序。

        ssh-agent 是⽤于缓存私钥的⾝份验证代理。

        ssh-add 为 ssh-agent添加私钥⾝份。

        ssh-keygen ⽣成、管理并转换 ssh 验证密钥。

        ssh-copy-id 是⼀个将本地公钥添加到远程 SSH 服务器上的 authorized_keys ⽂件中的脚本。

        ssh-keyscan 可以收集 SSH 公共主机密钥。

OpenSSH 作为 RHEL 的核⼼加密⼦系统之⼀,使⽤系统范围的加密策略。这样可确保在默认配 置中禁⽤ 弱密码套件和加密算法。

OpenSSH 套件使⽤两组配置⽂件:⼀个⽤于客⼾端程序(即 ssh、scp 和 sftp),另⼀个⽤于服 务器( sshd 守护进程)。

3. 连接加密技术介绍

⽬前常⻅的⽹络数据包加密技术通常是:⾮对称密钥。就是通过两把不⼀样的公钥与私钥来进⾏加密与解密的过程 。

公钥(public key):提供给远程主机进⾏数据加密的⾏为,所有⼈都可获得你的公钥来将数据 加密。

私钥(private key):远程主机使⽤你的公钥加密的数据,在本地端就能够使⽤私钥来进⾏解 密。私钥只有⾃⼰拥有。

SSH⼯作过程:在整个通讯过程中,为实现SSH的安全连接,服务端与客⼾端要经历如下五个阶 段:

过程说明
版本协商阶段SSH⽬前包括SSH1和SSH2两个版本,双⽅通过版本协商确定使⽤的版 本
密钥和算法协商 阶段SSH⽀持多种加密算法,双⽅根据本端和对端⽀持的算法,协商出最终 使⽤的算法
认证阶段SSH客⼾端向服务器端发起认证请求,服务器端对客⼾端进⾏认证
会话请求阶段认证通过后,客⼾端向服务器端发送会话请求
交互会话阶段会话请求通过后,服务器端和客⼾端进⾏信息的交互

4. 配置并启动SSH 服务器

4.1 启动ssh服务器

[root@node2 ~]# systemctl status sshd

启动之后就会出现如下图:

 注:在默认RHEL 安装后,sshd 守护进程已经启动,服务器主机密钥会⾃动被创建。

4.2 服务配置⽂件

[root@node2 ~]# vim /etc/ssh/sshd_config

配置文件信息

 注意:更改该配置文件后要重新启动服务器。

5. 配置基于密钥的⾝份验证(Linux------Linux)

5.1 要提⾼系统安全性,通过在 OpenSSH 服务器上禁⽤密码⾝份验证来强制进⾏基于密钥的⾝份验证。也就是关闭ssh连接密码验证登录。

进入配置文件

[root@node2 ~]# vim /etc/ssh/sshd_config

将配置文件中的 PasswordAuthentication  改为  no

重新启动ssh服务器

[root@node2 ~]# systemctl restart sshd

断开当前连接, 再重新连接该服务器时,就会出现如下图所示:

此时已经无法用登录密码登录连接了

5.2 ⽣成 SSH 密钥

对使⽤这个流程在本地系统中⽣成 SSH 密钥对,并将⽣成的公钥复制到OpenSSH 服务器中。如果正确配置了服务器,您可以在不提供任何密码的情况下登录OpenSSH 服务器。

[root@node2 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):             
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:p/qkTY/HbJ2+S6m/vIS6Xp9k0fJtVAo7B9gH3AoL3vM root@node2
The key's randomart image is:
+---[RSA 3072]----+
|           ...   |
|        . .o...  |
|       . o.o+.. .|
|        . + .* ..|
|        S .o= + .|
|         o .EB o |
|        +oo.*.. o|
|       * ==Oo. . |
|      ooB+oo@=   |
+----[SHA256]-----+

传递公钥到另一个服务器

[root@node2 ~]# ssh-copy-id root@10.10.10.100 #传送公钥到另一台服务器
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '10.10.10.100 (10.10.10.100)' can't be established.
ED25519 key fingerprint is SHA256:S8Es6Wxoi+qYxjFdYUFMMjEsxAmbDDZnvkT8jsnBUFQ.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes #输入yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@10.10.10.100's password: #输入另一台服务器的登录密码

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@10.10.10.100'"
and check to make sure that only the key(s) you wanted were added.

通过刚才公钥的传输,现在可以免密访问另一台服务器了

[root@node2 ~]# ssh root@10.10.10.100
Activate the web console with: systemctl enable --now cockpit.socket

Register this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
Last login: Tue Mar 28 15:54:15 2023 from 10.10.10.1
[root@node1 ~]# 

我们也可以查看另一台服务器拿到的公钥

[root@node1 ~]# cd .ssh/
[root@node1 .ssh]# ls
authorized_keys  known_hosts  known_hosts.old
[root@node1 .ssh]# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCtsQIUZ1CDW4PCvUp9q2nkbtC0YbEPEifdXL5yqfYzd7r5wk35RaFbpdd43fIKp4/zwi1X/QGVO9s9KQi0uggwmRDpQ3awEEbUQMfrgvHzAaHl+//vaEonbroxtqQtDrazAyo+J9KHvuqYgU0xneUks3fWsc1axu/kaz0l4R+Lo2sI5cxxJAWQHFNqk9gmD2mZQXQMhvChHM9tSccZ5akTaIww7HgJvlmYz0cc7S5F6S8dRpOuy7uLFkMnuhuKIRwBqiTxpior6GPfhdTbVQvSpOZ6zw6jTRQezRvR2qWEGW+OM/YAF+YPPazB+74YmsQM5Wwesqwwa3aap7qjm/IQUswwmXKXTGEGlk/gb63AV/saSB8f0/GEJ7fDq4tJ3LT0C63lpfLLVKFoBTY7UcVhS+ttjc5n9NZFtwAQHlHBBt3/gm0QYFmNakebPSpE36C1cw+F5+eDXRuIrPktCDrNtgdbeyI2Erb3vRLy0JFcteAk0mJdgLnZ/Wmsph81J9k= root@node2
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值