假设跳板机地址、端口、用户名如下:
跳板机IP地址: 111.111.111.111
跳板机端口: 121
跳板机用户: tiaoban
目标服务器的地址、端口、用户名如下:
目标服务器IP地址: 192.168.1.1
目标服务器端口: 122
目标服务器用户: mubiao
另外,为了方便查看Mac的隐藏文件夹,可以在文件夹里使用 commond + shift + 。
一、Linux通过跳板机访问目标服务器
(1)直接通过命令行的方式
## 命令
ssh username@目标机器ip -p 端口 -o ProxyCommand='ssh -p 端口 username@跳板机ip -W %h:%p'
## 示例
ssh mubiao@192.168.1.1 -p 122 -o ProxyCommand="ssh -p 121 tiaoban@111.111.111.111 -W %h:%p"
依次输入跳板机密码、目标服务器密码(密码不会显示)
(2)将命令行配置到配置文件(~/.ssh/config)中
## 这里以Mac的文件位置为例,编辑config文件
vim ~/.ssh/config
在config中添加如下信息(根据自己的服务器配置填写信息哦😯)
## 配置连接跳板机的命令
Host tiaoban #连接跳板机的命令
HostName 111.111.111.111 #跳板机的IP地址
Port 121 #跳板机端口
User tiaoban #跳板机用户
## 配置通过跳板机直接连接目标服务器的命令
Host server #连接服务器的命令
HostName 192.168.1.1 #目标服务器IP地址
Port 122 #目标服务器端口
User mubiao #目标服务器用户
ProxyCommand ssh -p 121 tiaoban@111.111.111.111 -W %h:%p
使用:
命令行连接跳板机
ssh tiaoban
## enter,输入跳板机密码
命令行连接目标服务器
ssh server
## enter,依次输入跳板机密码、目标服务器密码
二、Linux通过跳板机拷贝本地文件到目标服务器
命令行拷贝
假设本地文件路径(带文件名)
/User/test/Download/test.jar
目标服务器的文件存放路径(带文件名)
/usr/local/test.jar
拷贝命令
## 命令
scp -P 目标服务器端口 -o "ProxyJump 跳板机用户名@跳板机IP -p 跳板机端口" -r 本地文件路径 目标服务器@目标服务器IP:目标服务器存放路径
## 示例
scp -P 122 -o "ProxyJump tiaoban@111.111.111.111 -p 121" -r /User/test/Download/test.jar mubiao@192.168.1.1:/usr/local/test.jar
## enter,依次输入跳板机密码、目标服务器密码
注:
如果拷贝过程中出现如下错误:
可以在目标服务器的文件路径下新建一个同名(空)文件,然后再重新执行以上拷贝命令,即可覆盖拷贝覆盖同名文件。
参考博文:
SSH详解