问题:实验室服务器仅限内网访问,无法在宿舍(外网)访问实验室的所有内部服务器,但同时实验室又提供了一个外网可以访问的跳板机,虽然可以先ssh到跳板机再从跳板机ssh到内网服务器,但这种方式不方便传输文件,也没法用pycharm进行自动同步代码或者远程调试。
1. 跳板机配置config
登录跳板机,在.ssh目录下输入命令vi config
新建config文件,编辑如下内容
Host *
ControlPersist yes
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
保存后退出
2. 配置跳板机免密登录
把.ssh目录下的公钥注册到跳板机,如何生成ssh密钥自行百度
进入.ssh目录下,打开git bash
(用cmd会报错,尽量用git bash)输入如下命令
ssh-copy-id -i .ssh/id_ed25519.pub 跳板机用户名@跳板机地址 -p 端口号
3. windows客户机设置ssh隧道
打开cmd,输入如下命令
ssh -N -f -L 6000:<内网服务器ip>:<内网服务器端口> -p <跳板机端口> <跳板机用户名>@<跳板机ip> -o TCPKeepAlive=yes
这个窗口不能关掉
4. Windows客户机连接服务器
先测试连接情况。命令行输入
ssh 服务器用户名@localhost -p 6000