SSH Tunneling (SSH隧道)远程连接服务器
由于工作原因,总是要连接到各种不能直接访问的环境,所以大部分环境必须要使用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
连接成功。
四:本地数据库管理工具连接远程数据库
本地直接使用127.0.0.1即可连接至服务器。
推荐阅读
-
SSH Tunneling (SSH隧道)远程连接服务器
-
java通过ssh连接服务器执行shell命令详解及实例
-
java通过ssh连接服务器执行shell命令详解及实例
-
用python写个自动SSH登录远程服务器的小工具(实例)
-
用python写个自动SSH登录远程服务器的小工具(实例)
-
50.远程连接服务器 SSH, XDMCP, VNC, XRDP
-
Mysql SSH隧道连接使用的基本步骤
-
Mac通过不同终端SSH连接远程服务器的讲解
-
ftp无法与服务器建立连接_解决VS Code Remote Development插件无法建立SSH连接的问题...
-
远程SSH连接Linux配置Oracle的sqlplus环境变量