通过 SSH 连接反向 SCP

pav*_*kha 20 ssh scp

当我在笔记本电脑上时,我经常需要来自某个服务器的一些文件。但是如果我不知道那个文件在哪里,我就必须ssh进入服务器,环顾四周,exit然后scp server:file .. 如果我正在使用我的台式机和我的服务器,它们都具有静态 IP,我可以反向 ( scp desktop:~ file) SCP 文件,但我不能为我的笔记本电脑这样做。有什么好的方法可以通过 SSH 连接向后 SCP 文件吗?以便我使用 SSH 连接的计算机将文件向后发送到客户端?

Pat*_*hes 21

使用 SFTP 会容易得多,SFTP 是 SSH 的扩展,支持比 SCP 更复杂的文件操作。几乎所有现代 Unix 和 Linux 发行版都支持它。要使用它,只需运行以下命令连接到服务器:

sftp server
Run Code Online (Sandbox Code Playgroud)

然后您可以使用lscd命令浏览并找到您要查找的文件。找到后,使用get命令下载它。例如,要将file.txt服务器上的当前工作目录下载到本地计算机上的当前工作目录,只需运行:

get file.txt
Run Code Online (Sandbox Code Playgroud)

/home/pavpanchekha/textfiles/file.txt在服务器~/textfiles/上下载到本地计算机,请运行:

get /home/pavpanchekha/textfiles/file.txt ~/textfiles/
Run Code Online (Sandbox Code Playgroud)

相反,您也可以通过这种方式上传文件。要从file.txt本地当前工作目录上传到服务器的当前工作目录,请键入:

put file.txt
Run Code Online (Sandbox Code Playgroud)

您还可以像使用以下内容一样为每个使用完整路径get

put ~/textfiles/file.txt /home/pavpanchekha/textfiles/file.txt
Run Code Online (Sandbox Code Playgroud)

有关可用 SFTP 命令的完整列表,只需helpsftp>提示符下运行即可。

  • @pav:`SSH_CLIENT` 环境变量包含连接主机的 IP 地址等信息。您可以使用它来创建 shell 别名,以便轻松通过 SFTP 返回到原始主机。只需将此行添加到服务器上的`~/.bashrc`:`alias sftpback="sftp $(echo $SSH_CLIENT | awk '{print $1}')"` 然后断开并重新连接 SSH 以使更改生效,或者像运行命令一样运行它,以便立即生效。从那时起,您只需运行 `sftpback` 到 SFTP 返回到您正在连接的客户端,无论它是哪个客户端。 (2认同)