ssh的一些知识

一、定义
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
二、SSH 的结构
SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。 用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。
● 服务端是一个守护进程(daemon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。
● 客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序.
这些大家是比较常见的,这次我的分享就不说这些命令的使用了。
三、SSH 的登陆流程
1.密码登陆
在这里插入图片描述

2.公钥登陆
在这里插入图片描述

四、我这次要分享什么?
关于ssh 一些基本参数可以参考我的另一篇文章
https://blog.csdn.net/weixin_45064872/article/details/123717129,本次分享主要从ssh 端口转发、正向代理、反向代理三个方面进行分享。
1.SSH 端口转发
定义:端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,其使一个外部用户从外部经过一个被激活的NAT路由器到达一个在私有内部IP地址(局域网内部)上的一个端口。
如何实现端口转发

ssh -L 15000:localhost:15001 root@101.43.173.96 
#将本机的15000 转发到服务器101.43.173.96 的15001 端口

在这里插入图片描述

在目标机 101.43.173.96 器上使用 netcat 侦听 15001 端口:
在这里插入图片描述

nc -l 15001

在这里插入图片描述

本机上连接本机 15000端口,连接之后发送文本消息

nc -v localhost 15000

在这里插入图片描述

我们可以发现本机和目标机实现了通讯
在这里插入图片描述

● 我们能用来干什么呢?
在这里插入图片描述

2.SSH 正向代理
正向代理,也就是我们常说的代理,它的作用相当与跳板机。举例:当A服务器需要访问C服务器,但A和C之间无直接连通,若A通过跳板机B实现对C的访问,那么A->B->C的过程即为正向代理,B服务器也就是代理服务器,如下图:
在这里插入图片描述

正向代理的用途:
● 访问原来无法访问的资源,如google;
● 对客户端访问授权,上网进行认证;
● 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
3.SSH 反向代理
反向代理为正向代理的反过程,反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。举例:A服务器无法直接访问C服务器,但A可以访问B服务器,这时候通过设置反向代理,当A访问B服务器时,B将A的访问请求转发给C,从而实现了A对C服务器的访问;如下图
在这里插入图片描述

反向代理的用途
● 可以做缓存,加速访问资源;
● 匿名性和安全性;由于反向代理会拦截所有传入请求,因此它们可以为后端服务器提供额外的保护。它通过阻止来自特定IP地址的可疑流量来帮助防止任何恶意行为者滥用Web服务器。
● 负载均衡
5.正向代理和反向代理的一些设置参数
● 反向代理 ssh -fCNR
● 正向代理 ssh -fCNL
● -g:允许远程主机连接主机(host)的转发端口;
● -f 后台执行ssh指令
● -C 允许压缩数据
● -N 不执行远程指令
● -R 将远程主机(服务器)的某个端口转发到本地主机指定的端口
● -L 将本地机(客户机)的某个端口转发到远端指定机器的指定端口
● -p 指定远程主机的端口
6.一个实际的例子
有A,B,C 3台服务器;
A,C有公网IP, B是某IDC的服务器无公网IP。
A通过B连接C的80端口(A<=>B<=>C), 那么在B上执行如下命令即可:
ssh -CfNg -L 6300:127.0.0.1:80 userc@C #将B的6300 端口正向代理到 C 的80 端口
ssh -CfNg -R 80:127.0.0.1:6300 usera@A #将 将外主机 A 的 80 反向代理到 B 的6300

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值