如何通过ssh跳转访问远程主机
2023-01-10 本文已影响0人
癞痢头
如何使用ssh 访问远程主机
有一个经典的管理场景是,从本地的办公网络,访问一组处于云上的远程主机,这组主机防火墙高度安全,那么有什么简便易行的方法来访问这组主机呢?
一种方式是通过 VPN来实现;一种就是通过 ssh 跳转登陆了。
本文将演示如何通过跳转主机访问远程 Linux 服务器,同时还会展示在SSH客户端的配置。
跳转登陆语法
ssh -J user@jump-host:port user@destination-host:port
通过主机jump-host,登陆主机destination-host
ssh -J username@host1:port,username@host2:port username@host3:port
通过主机host1,登陆主机host2,在从host2登陆host3
通过配置简化登陆
- 手动指定跳转主机
在 ~/.ssh/config 添加如下配置
- 手动指定跳转主机
### 第一中转主机. Directly reachable
Host vps1
HostName vps1.example.org
### 目标主机 jumphost1.example.org
Host contabo
HostName contabo.example.org
ProxyJump vps1
登陆命令
ssh -J vps1 contabo
- 自动配置跳转
在 ~.ssh/config
or $HOME/.ssh/config
添加:
Host vps1
HostName vps1.example.org
IdentityFile ~/.ssh/vps1.pem
User ec2-user
Host contabo
HostName contabo.example.org
IdentityFile ~/.ssh/contabovps
Port 22
User admin
ProxyCommand ssh -q -W %h:%p vps1
登陆主机contabo
命令:
ssh contabo
让我们探索配置文件中使用的选项:
- -q – 这代表安静模式。它会抑制警告和诊断消息。
- -W – 请求将客户端上的标准输入和输出通过安全通道转发到 PORT 上的 HOST。
- -%h – Specifies the host to connect to.
- -%p – Specified the port to connect to on the remote host.