欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SSH Tunneling (SSH隧道)远程连接服务器

程序员文章站 2024-03-20 14:50:58
...

由于工作原因,总是要连接到各种不能直接访问的环境,所以大部分环境必须要使用ssh隧道进行访问。

SSH Tunneling (SSH隧道)远程连接服务器

client为了访问到server的服务,但是由于网段不同(内外网不同)或者防火墙的阻拦,这就用到了ssh隧道

理解:

本质上就是端口转发。它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做“隧道”(tunneling),这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。
SSH 端口转发能够提供两大功能:
1.加密 SSH Client 端至 SSH Server 端之间的通讯数据。
2.突破防火墙的限制完成一些之前无法建立的 TCP 连接。

注:上述图解来着于学习时,查找到其它博客的资料。标注一下,尊重原作者。同时便于后来的人学习参考。(点击跳转)

使用阿里云远程数据库时,本地代码中不能直接连接数据库。

一:本地下载OpenSSH。

1.1:下载路径:跳转至Github下载OpenSSH。选择对应的Assets下载版本。(我的PC端是64位,选择的是OpenSSH-Win64.zip

1.2:解压到C:\Program Files\OpenSSH路径下

1.3:CMD命令行至OpenSSH解压路径下,依次执行。

(1)安装sshd服务

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

(2)开放22号端口

netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

(3)配置开机自启sshd服务

sc config sshd start= auto

(4)启动服务

net start sshd

1.4:【可选】将C:\Program Files\OpenSSH添加到环境变量中。避免每次CMD命令行都需要进入到C:\Program Files\OpenSSH目录下执行。如不添加环境变量则,需要进入对应目录下执行。

二:生成SSH Key

2.1:git命令

--查看当前用户

 git config user.name

--查看当前邮箱

git config user.email

--切换用户

git config --global user.name "XXXX"

--切换邮箱

git config --global user.email "XXXX"

--git生成ssh key

ssh-****** -t rsa -C "邮箱名称"

2.2:执行生成SSH Key后回车,默认文件路径。C:\Users\Administrator\.ssh 下。密码可选,需要密码则输入密码,不需要回车跳过即可。

2.3:将生成的id_rsa.pub内容复制下来,加入到服务器 .ssh/authorized_keys文件中。(可追加到第二行)

三:远程连接服务器

3.1:OpenSSH执行命令


// ubuntu:服务器用户名
// ~/.ssh/id_rsa:本地私有SSH key

ssh aaa@qq.com服务器对公IP -i ~/.ssh/id_rsa -N -L127.0.0.1:3717:服务器私有IP:3717

例子:      服务器对公IP                                        服务器私有IP
ssh aaa@qq.com -i ~/.ssh/id_rsa -N -L127.0.0.1:3717:192.168.17.99:3717

SSH Tunneling (SSH隧道)远程连接服务器

连接成功。

四:本地数据库管理工具连接远程数据库

SSH Tunneling (SSH隧道)远程连接服务器

本地直接使用127.0.0.1即可连接至服务器。