繁体   English   中英

通过ssh传输文件

[英]Transfer file over ssh

在ssh协议中,是否有文件传输机制?
我正在处理已有ssh设施代码的现有代码库。 现在我需要通过ssh连接传输文件。 如果ssh协议已经支持它,我不必将scp内容集成到其中。

谢谢。

编辑:
我使用C,基于openssh的ssh代码。
由于某些限制,我必须以编程方式传输文件,而不是使用外部程序/命令。 该程序应该在远程主机上逐块传输任何大小的文件,并在运行中处理该块。 然后丢弃块数据。

echo "hello" | ssh user@SSHHost "cat - > /tmp/file"

我juste读取文件,用SSH管道,然后写入/ tmp /文件中的SSHHost服务器。

sftp和scp都是现有的“安全”文件传输方法,但您的答案将取决于您为应用程序使用的技术堆栈。 您没有提到您是使用C#,PHP还是其他语言,或者您的应用运行的是什么类型的计算机。 这些事情将对你得到的答案产生重大影响。

老派的方式是“tar-to-tar”,它可以很好地复制和保留权限。 当双方都有rsync时,这很大程度上被使用rsync取代了。

ssh test@example.org "cd mydir && tar cfp - mysubdir" | tar xvfp -

执行此操作时,请注意稀疏文件等。 大多数tars都可以选择在此类过程中保留文件漏洞。

试试看SFTP

编辑:您可能还会发现本文对于在ssh上运行rsunc非常有用。

Rsync可以提供帮助:

rsync usernamea@server.com:filename remotefilename
To download: remote -> local
scp user@remote_host:remote_file local_file 

To upload: local -> remote
scp local_file user@remote_host:remote_file

对于多个文件,在scp之后包含-r

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM