使用 scp 之类的东西,但当我已经登录时

使用 scp 之类的东西,但当我已经登录时

我想在登录后通过 ssh 复制文件。scp它通过登录名、密码、路径复制文件。我想要的是当我在“内部”时能够做同样的事情,最好不提供登录名和密码:

$ ssh [email protected]
root's password:

Welcome to .....
Last login: ....
root@folder1:~# // How do I download (or upload) the files when I'm here?

答案1

正如指出的这个询问 Ubuntu 答案,您可以使用zssh代替ssh。使用时zssh,您可以切换到文件传输方式使用Ctrl+ @。这应该允许您在活动连接的本地端和远程端之间来回传输文件。

其他诡计那个答案中指出是ssh在你打电话的时候发送到后台scp。虽然这可能需要重新身份验证,但如果您设置密钥身份验证,这应该不是问题。要发送ssh到后台,请按Ctrl+ Z。然后,您应该能够使用 来调用scp,并ssh在完成后返回fg

编辑:正如 muru 所指出的,为了在本地而不是远程处理Ctrl+ Z,您必须使用Enter, ~, Ctrl+ Z查看 SSH 转义序列

基本上,scp只是ssh工作方式不同。你需要一个技巧来让一个人完成另一个人的工作。我之前链接的问题中给出了其中一些技巧。

答案2

如果设置了控制文件,则可以重用现有的连接身份验证。从man ssh_config:

 ControlMaster
         Enables the sharing of multiple sessions over a single network
         connection.  When set to “yes”, ssh(1) will listen for
         connections on a control socket specified using the ControlPath
         argument.  Additional sessions can connect to this socket using
         the same ControlPath with ControlMaster set to “no” (the
         default). ...
         Two additional options allow for opportunistic multiplexing: try
         to use a master connection but fall back to creating a new one if
         one does not already exist.  These options are: “auto” and
         “autoask”.  The latter requires confirmation like the “ask”
         option.

因此,如果您使用选项进行连接-o ControlMaster=auto -o ControlPath=/tmp/ssh-%h-%r,则第一个连接可以重复用于scp。这可以在您的~/.ssh/config

Host some-host
  ControlMaster auto
  ControlPath=/tmp/ssh-%h-%r

相关内容