shell - 脚本中从远程主机到本地服务器的 scp
问题描述
我已经能够找到很多服务器跳跃和 ProxyCommand 的示例,但没有一个与我的特定需求相关。
我想将文件从远程服务器传输到本地服务器。目前,我可以 ssh from local
tojump
和 from jump
to distant
(不能直接从本地 ssh 到远程)。然后从distant
我可以 scp 一个文件回到local
. 现在我手动执行此操作:
来自本地:ssh userJ@jump
然后从跳转:ssh userD@distant
然后从远处:scp \path\file userL@local:\dest\path\
但我希望能够在我从本地运行的脚本中执行此操作。我将 rsh 密钥存储在适当的位置以消除密码提示。我只是无法弄清楚单个命令的语法。
解决方案
您是否必须将文件“推”distant
回local
?
local
在from上简单地“拉”文件会更容易distant
。
设置:~/.ssh/config
_local
[userL@local]# cat ~/.ssh/config
Host distant
HostName Distant
user userD
ProxyCommand ssh -A userJ@jump nc %h %p
使用 ssh 测试连接:
[userL@local]# ssh -A userD@distant [or even: ssh -A distant]
Last login: Tue Oct 23 16:05:59 2018 from jump
[userD@distant]#
现在从以下位置拉一个文件distant
:
[userL@local]# scp userD@distant:/distantpath/distantfile /localpath/localfile
distantfile 100% 129KB 128.9KB/s 00:01
[userL@local]#
在上面的示例中,我使用了 ssh 的代理转发来将凭据从local
tojump
和 finally传递distant
。您只需要在代理转发工作之前jump
和之前预先填充授权密钥。distant
推荐阅读
- google-sheets - 为什么 =Importrange() 会在 Google 表格中导致 #name 错误?
- jquery - Does Bootstrap version 3.4 compatible with JQuery version 3.4?
- c# - 如何使用 PostgreSQL 获得类似 LINQ-to-SQL 的功能?
- react-native - 如何将 Shopify 应用程序集成到 React Native 中
- python - Tkinter 获取图像以跟随光标与先前的移动
- java - 将一个简单的 Java 库发布到 Maven
- .net-core - 应用程序依赖项清单中指定的程序集(
.deps.json) 未找到 - c# - API 调用的间歇性连接错误,直到手动回收 IIS 应用程序池
- git - 克隆存储库时如何获取命令行以重新提示 github 的用户名/密码
- node.js - 如何过滤 dynamodb 中时间戳超过 1 天的条目?