Bash 跨两个服务器传输文件的脚本
Bash Script to Transfer File across Two Servers
我正在编写一个 bash 脚本来执行以下操作:将特定文件传输到跳转服务器,然后将同一文件从跳转服务器传输到最终服务器。我最初的想法是对文件进行 SCP,然后 SSH 进入跳转服务器,然后再次 SCP 文件,但是当我 SSH 进入跳转服务器时 bash 脚本终止。我对 bash 相对缺乏经验,想知道如何执行这种两路文件传输,或者是否有比我目前使用的方法更好的方法?
scp
已经可以处理通过跳转服务器连接到目的地的细节。不需要额外的脚本。
scp -o ProxyJump user@jumphost /path/to/local_file final_server:/destination/path
使用 ssh ProxyJump。 Create\edit ~/.ssh 中的配置文件
nano ~/.ssh/config
如果您的主目录中没有 ~/.ssh 文件夹,请创建它
mkdir -p ~/.ssh; chmod 700 ~/.ssh
而且配置必须是600
chmod 600 ~/.ssh/config
在此文件中,您可以像这样为您的服务器创建 ssh 别名
Host server1 # ssh-alias name
HostName 192.168.0.1 # server name or ip address
User user # user to login
假设有两个(或更多)服务器,但您只能从服务器 1 访问它们
Host server2 # ssh-alias name
HostName 192.168.0.2 # server name or ip address
User user # user to login
ProxyJump server1 # jump server
而server3仅来自server2
Host server3 # ssh-alias name
HostName 192.168.0.3 # server name or ip address
User user # user to login
ProxyJump server3 # jump server
此配置将创建 "chain" 台服务器以访问具有简单名称的远程主机
ssh server3
或者在他们之间复制files\dirs
scp some_file server3:/home/user/
但此方法最好与 RSA 密钥验证一起使用
我正在编写一个 bash 脚本来执行以下操作:将特定文件传输到跳转服务器,然后将同一文件从跳转服务器传输到最终服务器。我最初的想法是对文件进行 SCP,然后 SSH 进入跳转服务器,然后再次 SCP 文件,但是当我 SSH 进入跳转服务器时 bash 脚本终止。我对 bash 相对缺乏经验,想知道如何执行这种两路文件传输,或者是否有比我目前使用的方法更好的方法?
scp
已经可以处理通过跳转服务器连接到目的地的细节。不需要额外的脚本。
scp -o ProxyJump user@jumphost /path/to/local_file final_server:/destination/path
使用 ssh ProxyJump。 Create\edit ~/.ssh 中的配置文件
nano ~/.ssh/config
如果您的主目录中没有 ~/.ssh 文件夹,请创建它
mkdir -p ~/.ssh; chmod 700 ~/.ssh
而且配置必须是600
chmod 600 ~/.ssh/config
在此文件中,您可以像这样为您的服务器创建 ssh 别名
Host server1 # ssh-alias name
HostName 192.168.0.1 # server name or ip address
User user # user to login
假设有两个(或更多)服务器,但您只能从服务器 1 访问它们
Host server2 # ssh-alias name
HostName 192.168.0.2 # server name or ip address
User user # user to login
ProxyJump server1 # jump server
而server3仅来自server2
Host server3 # ssh-alias name
HostName 192.168.0.3 # server name or ip address
User user # user to login
ProxyJump server3 # jump server
此配置将创建 "chain" 台服务器以访问具有简单名称的远程主机
ssh server3
或者在他们之间复制files\dirs
scp some_file server3:/home/user/
但此方法最好与 RSA 密钥验证一起使用