SSH服务
SSH介绍:
- SSH是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能;
- 对通信双方的数据传输进行加密处理,其中包括用户登录时输入的用户口令;
- 与早期的Telnet(远程登录)、rsh(远程执行命令)、rcp(远程文件控制)等相比,SSH协议提供了更好的安全性
SSH(远程连接工具)连接原理:
SSH服务端是一个守护讲程 (daemon).他在后台运行并响应来自客户端的连接请求。 SSH服务端的讲程名为sshd,负责实时监听远程SSH客户端的远程连接请求,并进行处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接等。这个SSH服务就是我们前面基础系统优化中保留开机自启动的服务。
ssh客户端包含ssh以及像scp(远程拷贝) slogin(远程登陆) sftp(安全FTP文件传输)等应用程序。
ssh的工作机制大致是本地的ssh客户端先发送一个连接请求到远程的ssh服务端,服务端检查连接的客户端发送的数据包和IP地址,如果确认合法,就会发送密钥给 SSH的客户端,此时,客户端本地再将密钥发回给服务端,自此连接建立。
CentOS7安装与配置SSH
1.安装
yum install -y openssl openssh-server
2.修改配置文件
vim /etc/ssh/sshd_config(服务端)
vim /etc/ssh/ssh_config(客户端)
3.如何启动ssh服务
systemctl start sshd.service
4.如何设置开机自动启动ssh服务
systemctl enable sshd.service
5.查看sshd相关端口号
netstat -natp |grep sshd
SSH服务登录验证方式:
1.密码登录
通过登录用户名及密码进行登录
方便但不安全
2.密钥对验证
加密是对信息进行编码和解码的技术,它通过一定的算法(密钥)将原本可以直接阅读 的明文信息转换成密文形式。密钥即是密文的钥匙,有私钥和公钥之分。在传输数据时,如果 担心被他人监听或截获,就可以在传输前先使用公钥对数据加密处理,然后再行传送。这样, 只有掌握私钥的用户才能解密这段数据,除此之外的其他人即便截获了数据,一般也很难将 其破译为明文信息。既不采用手动输入密码登陆,直接密钥验证登陆,更安全,不容易破解。
3.配置步骤
第一步:在客户端主机中生成“密钥对”。
命令:ssh-keygen
第二步:把客户端主机中生成的公钥文件传送至远程主机。
命令:ssh-copy-id 192.168.28.29
注意这个IP地址是将客户机生成的密钥发送到服务器的目标主机IP地址。成功登陆验证过后,便不再需要输入密码验证。
第三步:对服务器进行设置,使其只允许密钥验证,拒绝传统的口令验证方式。
将PasswordAuthentication yes改成PasswordAuthentication no即可。
验证:ssh 192.168.28.29
TCP_Wrappers
1.工作原理:
TCP_Wrappers有一个TCP的守护进程叫作tcpd。
以ssh为例,每当有ssh的连接请求时,tcpd即会截获请求,先读取系统管理员所设置的访问控制文件,符合要求,则会把这次连接原封不动的转给真正的ssh进程,由ssh完成后续工作;
如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供ssh服务。
2.设置黑名单
vim /etc/hosts.deny
无法进行远程连接
3.设置白名单
vim /etc/hosts.allow
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)