Linux进阶教程丨第8章:配置和保护SSH
发布网友
发布时间:2024-09-29 04:23
我来回答
共1个回答
热心网友
时间:2024-10-19 00:00
本文内容专注于Linux进阶教程的第8章,主题为配置和保护SSH。
在深入学习前,让我们回顾前七章的内容:第一章介绍了如何访问命令行,第二章教我们从命令行管理文件,第三章讲解了编辑、查看和编辑文本文件,第四章讲述了管理用户和组,第五章涉及了控制对文件的访问,第六章同样关注控制对文件的访问,第七章则讲解了控*务和守护进程。
在第八章中,我们将深入了解SSH协议,SSH是一种加密网络协议,允许在不安全的网络中通过加密和安全方式进行计算机间的通信。使用ssh命令,我们可以创建安全的远程系统连接、以特定用户身份进行身份验证,并在远程系统上获取交互式shell会话。此外,ssh命令也允许在远程系统上执行单个命令,无需运行交互式shell。
登录远程系统时,需要输入目标用户的密码进行身份验证。使用exit命令退出会话时,则不需要身份验证。尝试使用用户名为user02登录user01的账户,系统将要求输入user02的密码。
在系统中使用w命令可以显示当前登录的用户列表,包括用户、登录位置以及执行的操作。例如,user0r2用户在今天16:13从IP为172.25.250.10的主机登录,闲置了7分钟半。user01用户登录了同一系统,自执行w命令后三秒处于闲置状态。
SSH主机密钥通过公钥加密技术确保通信安全。当SSH客户端连接到SSH服务器时,服务器发送公钥副本用于设置加密通道并验证客户端身份。客户端在本地已知主机文件中查找服务器公钥副本,通常在用户主目录下的~/.ssh/known_hosts文件中。
若客户端已有公钥副本,会将其与收到的公钥进行比较。公钥不匹配时,客户端会怀疑网络流量被劫持或服务器被入侵,请求用户确认连接。若客户端文件中无公钥副本,会询问是否继续登录,若同意,则公钥保存到~/.ssh/known_hosts文件中以供将来自动确认服务器身份。
公钥存储在服务器的/etc/ssh/目录下和SSH客户端的~/.ssh/known_hosts文件中,每个公钥占据一行,包含主机名或IP地址、加密算法和公钥本身。远程SSH服务器将公钥存储在/etc/ssh目录下,扩展名为.pub的文件中。
配置基于SSH密钥的身份验证,实现无密码身份验证,基于私钥-公钥方案。生成私钥和匹配的公钥,私钥用于身份验证,公钥复制至目标系统以验证私钥,无需保密。使用ssh-keygen命令生成私钥和公钥,默认保存在~/.ssh/id_rsa和~/.ssh/id_rsa.pub文件中。设置密码保护私钥或不保护,取决于安全需求。ssh-copy-id命令用于将SSH密钥对的公钥复制到目标系统,若未指定路径,默认使用/home/user/.ssh/id_rsa.pub文件。完成公钥传输后,使用私钥身份验证登录远程系统,通过SSH实现安全登录。