ssh 是如何工作的?

在 terminal 中 ,当我们输入 ssh username@remote_host 时,terminal 程序调用 ssh client ,ssh client 发起网络请求 ,请求 remote_host 的默认22端口,远端服务器22端口收到请求后,将请求转发到本地的 ssh server 程序。然后 ssh server 和 ssh client 交换 公钥、私钥、cipher suite info。在 ssh server 主机创建 shell 进程。这样 ssh 加密通道就创建完成了。后续的 shell 命令和命令的响应都将通过这个通道传输。

例如,当 ssh 通道建立后,在本地输入 ls 命令,那么 ls 命令将通过通道发送到 ssh server 所在的服务器,并且在 ssh server 中执行。ssh server 的 shell 进程在执行完命令后,将命令所有的输出,重定向到管道,通过管道传递给 ssh-client 的另一端。另一端进行解密并打印到 terminal application 上。

本地与远程服务器之间存在防火墙,防火墙只允许SSH端口通过,为访问远程服务器,我们可以借助MobaXterm来与SSH服务器建立

隧道,使得防火墙外的用户能够访问远程服务器。

ssh隧道_隧道

本地转发就是通过跳板机将本地的端口转发到远端服务器。本地使用 ssh 程序监听指定端口,并将这个端口的所有请求转发到远端的指定端口。

例如 将 127.0.0.1(local host) 的 1234 (local port) 端口转发到 www.leorain.cn (remote host) 的 80 (remote port) 端口。所有对于 127.0.0.1 的 1234 端口访问都将转发到 www.leorain.cn 的 443 端口。

方式一:xshell

ssh隧道_ssh_02

本地可以连上B机器,IP为左边图120开头;在会话里选中,点击属性-隧道,添加

ssh隧道_隧道_03

侦听端口443,目标主机C,填写其IP(右图13开头的)

方式二:mobaxterm

1.tools-mobaSSHTunnel

ssh隧道_隧道_04

2.添加

ssh隧道_隧道_05

3.依次填写本地端口,代理机器b登录信息,目标机器C的ip和端口

ssh隧道_ssh_06

4.启动单个或者全部启动

ssh隧道_隧道_07

勾选后两个,就能自动连接了

ssh隧道_隧道_08

浏览器访问

ssh隧道_ssh_09


https://blog.csdn.net/u010520552/article/details/80823953