OpenSSH 高级运用两则

简介:

00x0、相关介绍

OpenSSHOpenBSD Secure Shell)使用 SSH 通过计算机网络加密通信的实现。

它是替换由 SSH Communications Security 所提供的商用版本的开放源代码方案。目前 OpenSSH 是 OpenBSD 的子项目。

大家都只知道 SSH 可以基于密码或密钥登录远程主机使用,但是你知道吗?其实 SSH 还可以在运用在公网服务器连接私有IP虚拟机,还可以实现命令行 SSH 代理

00x1、公网服务器连接私有IP虚拟机

试验环境为两台 CentOS 系统:

一台为公网服务器 rabbit :45.xxx.xxx.212

一台为 VirtualBox NAT 模式下的 CentOS 虚拟机 CentosA:10.0.2.15

NAT 普遍使用在有多台主机但只通过一个公有 IP 地址访问因特网的私有网络中,它允许了多台主机共享一个公用 IP 地址(即虚拟机的所有数据包最后都由网络中那台有公网 IP 地址主机转发出互联网)。

首先在 NAT 后面的虚拟机内建立端口转发,通过如下命令:


 
 
  1. ssh -gfN -R <公网映射端口>:127.0.0.1:<本地端口> <目标公网>

命令中“SSH”参数介绍:

  • -g:允许远程主机连接到本地建立的转发端口
  • -fN:不登录不执行脚本或命令(经常连用)
  • -C:压缩数据传输(小带宽可用)
  • -R:程序级端口转发 ,“port:host:hostport”方法(必须使用)

在我们的例子中,命令如下(处于安全的原因,隐藏了远端公网地址):


 
 
  1. # ssh -gfN -R 1111:127.0.0.1:22 45.xxx.xxx.212

接着,从公网服务器 45.xxx.xxx.212 上连接 NAT 后面的虚拟机,输入命令:


 
 
  1. ssh -p 1111 localhost

以上从公网服务器连接到虚拟机私有 IP 实验结束,下面是运用 SSH 建立 Proxy 代理。

00x2、建立 SSH 代理

代理Proxy,也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。

图解:左边和右边的电脑在通讯时候,需要经过中间的电脑中转,而中间的那部电脑就是代理服务器。

简单的说就是 A 要访问 C,即便可以直接访问 C,但是有俩个问题:一个是安全的问题,另外还有就是“过滤问题”。

于是我们有了“代理”就是让我们 A 连接 B,由 B 去访问 C,B 最后“加密”传送给用户,最后用户就得到了想要的来自 C 的信息。

服务器端代理设置

本机输入如下命令实现 SSH 代理:


 
 
  1.  ssh -nNT <user>@<ip> -D <port>

参数介绍:

  • -n:后台运行
  • -N:不执行远程指令
  • -T:不分配 TTY ,只做代理用
  • -D:指定代理端口 

上述命令的意思是,在本地监听端口 1111,将访问到该端口的流量转发到远程服务器,远程服务器的用户凭证由命令行指定。

至此,SSH 代理设置已经完成了。后面要用代理工具完成 SSH 代理。

客户端配置

客户端使用代理设置(本人这里使用的是Chrome浏览器下的 SwitchyOmega 工具,同类代理还可以用 Firefox 浏览器下的工具 AutoProxy):

这里我们通过了代理设置,我们的浏览器和“阿里云”服务器连接完成~这样我们就可以代理上网、加速上网。甚至还可以科学上网!

00x3、总结心得

第一节希望让大家灵活运用 SSH,SSH 的功能不仅仅只是简单的远程连接部署。通过 SSH 设置,可以让任何一台机器通过 SSH 相连接的!第二篇的意义在于享受远程任何一台机器同时,还可以明白,能完成互连的 SSH。当然也可以完成代理~!

原文发布时间为:2016-06-18

本文来自云栖社区合作伙伴“Linux中国”

相关文章
|
7月前
|
Linux KVM 虚拟化
PVE8.0-2安装使用快速指导
PVE8.0-2安装使用快速指导
|
6月前
|
机器人 API 开发者
Python基于Mirai开发的QQ机器人保姆式教程(亲测可用)
Python基于Mirai开发的QQ机器人保姆式教程(亲测可用)
|
XML 安全 网络协议
上帝之眼Nmap简介及命令大全
本篇文章首先对黑客常用的工具Nmap(上帝之眼)做了一个基本介绍,然后对Nmap的常用命令做了一个很详细的汇总,包括Nmap常用命令的解释说明,详情请看正文。
180 1
上帝之眼Nmap简介及命令大全
|
vr&ar 网络架构
网络应用基础华为ENSP环境的安装(NETBASE第三课)
网络应用基础华为ENSP环境的安装(NETBASE第三课)
217 0
|
安全 数据安全/隐私保护 Windows
什么?Nessus你又双叒叕安装失败了吗?
什么?Nessus你又双叒叕安装失败了吗?
263 0
|
存储 传感器 JSON
国王小组:交易所搭建开发CLI命令来管理包
Uniswap交易所开发稳定版丨Uniswap交易所系统开发(开发模板)丨Uniswap交易所系统源码案例部署 数字货币交易所开发详情版丨数字货币交易所系统开发(web3.0技术开发)丨数字货币交易所开发源码成品 交易所APP开发功能丨交易所系统开发(成熟及案例)丨交易所系统源码平台 DAPP交易所系统开发(开发案例)丨DAPP交易所系统开发(源码及方案) DAPP数字货币交易所开发逻辑,DAPP数字货币交易所系统开发(案例及源码) DAPP交易所开发稳定版丨DAPP交易所系统开发(开发案例)丨DAPP交易所系统源码部署 数字货币去中心化交易所开发详情版丨数字货币去中心化交易所系统开发(原生
国王小组:交易所搭建开发CLI命令来管理包
|
网络协议 Shell Linux
【网安神器篇】——瑞士军刀Netcat
今天给大家分享的网络安全神器是网安界的瑞士军刀——Netcat
365 0
【网安神器篇】——瑞士军刀Netcat
|
Web App开发 Ubuntu Shell
linux中常见工具安装问题集锦(一)
经常和服务器打交道的同学,特别是服务器运维和开发的同学,会经常使用到一些工具和命令。然而,有时候一些新机器或者“有待考究的机器”可能啥都没有,就需要我们手动去安装相应的工具。你还别说,平时用的非常熟悉的工具,说到安装它们?一开始还真把我愁坏了,后来习惯了就好啦,哈哈。因此,整理了一些内容记录下来,方便日后查阅。
884 0
|
安全 网络协议 Linux
Linux科普-扫除盲区(你应该知道的Telnet)
Linux科普-扫除盲区(你应该知道的Telnet)
187 0