在 ssh 模式下下载文件?

问题描述 投票:0回答:3

我过去常常使用 ssh 来浏览远程服务器。有时我想下载一个文件在我的电脑中打开。

但我知道如何做到这一点的唯一方法是打开一个新的命令行窗口并使用 scp 从本地到远程。

有没有办法直接从 ssh 服务器执行此操作?

就像一个知道我当前 IP 的命令,这样就可以自动设置一切?

(以这种方式上传也很棒......)

command-line ssh terminal download
3个回答
1
投票

没有简单的方法可以做到这一点 - 我按照您刚才描述的方式使用 ssh 和 scp 多年。但是,您可以将 ssh 和 scp 配置为每次都不需要密码,这非常舒服!为此,您需要:

  1. 通过 ssh-keygen 生成密钥 - 它们也可以受密码(= 密码)保护
  2. 将远程计算机的密钥复制到 ~/.ssh/authorized_keys

然后,每次启动会话时,都会运行 ssh-agent 和 ssh-add。您只需输入一次密码。然后您可以通过脚本等多次运行 scp/ssh,而无需每次都输入密码!

我不记得如何配置所有这些的确切方法,但请查看所有这些有用工具的联机帮助页!许多事情可以通过将它们放入 ~/.bash_profile 或 ~/.bashrc 文件来自动化。


0
投票

我在尝试自己回答你的问题时发现了这一点:

https://askubuntu.com/a/13586/137980

只需安装 zssh 并使用 Ctrl-@ 进入文件传输模式。


0
投票

基本概念:捕获 SSH 输出并使用它来使用 base64 传输数据/文件。

某些终端/SSH 客户端具有完整的输出日志记录。 OpenSSH 没有,但我们有 tee 并且类似的东西可以工作:

user@system1> ssh example.com | tee example.log
user@system2> base64 example.bin
user@system2> logout
user@system1> vim example.log # remove garbage before and after the base64 data
user@system1> base64 -di <example.log >example.bin # -i ignores different line endings like CR/LF

有一些高级方法可以将现有的 TTY 通过管道传输到文件或 rz 中,因此理论上您可以使用 rz 和 sz,它们允许使用 ZModem 通过 TTY 发送文件,但我想这些工具在现代系统上不再是“标准”。我在 1990 年代就用过它们。虽然重定向 TTY 听起来很聪明,但设置起来比简单的 ssh 更麻烦。老实说,我已经忘记了它是怎么做的。但在更复杂的设置中,您可能会查找并发现它更符合您的喜好。

© www.soinside.com 2019 - 2024. All rights reserved.