📜  通过带有端口的 ssh 下载文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:58:06.080000             🧑  作者: Mango

通过带有端口的 ssh 下载文件

SSH 是一种加密的网络协议,可以通过它来连接到远程服务器或者虚拟机。在使用 SSH 时,我们可以通过 SSH 的扩展功能,比如 SCP 或者 SFTP,来上传或者下载文件到服务器上。但是,有些服务器可能会禁止 SCP 或者 SFTP,只开放 SSH 端口,那么我们该如何下载文件呢?

方法一:使用 SFTP

如果您的 SSH 服务器已经支持 SFTP,那么您可以直接通过 SFTP 来下载文件:

sftp -P {port} user@host:/path/to/remote/file /path/to/local/file

这里的 {port} 为 SSH 的端口号,userhost 分别是您的账户和服务器的地址。/path/to/remote/file 则是需要下载的文件路径,/path/to/local/file 则是将文件下载到本地的路径。

方法二:使用 SSH 和 tar 命令

在有些情况下,我们可以通过 tar 命令来将需要下载的文件打包,并通过 SSH 连接来下载打包后的文件。

首先,在远程服务器上,使用 tar 命令将需要下载的文件打包:

tar czvf /tmp/files.tar.gz /path/to/remote/file

这里 /tmp/files.tar.gz 则是打包后的文件路径,/path/to/remote/file 则是需要下载的文件路径。

然后,使用 SSH 连接到远程服务器,并将打包后的文件下载到本地:

ssh -p {port} user@host "cat /tmp/files.tar.gz" | tar zxvf - /path/to/local/file

这里,{port}userhost 的含义与上面相同。/tmp/files.tar.gz 则是打包后的文件路径。| 符号将远程服务器的文件内容通过管道传递给本地的 tar 命令,然后解包到本地的 /path/to/local/file

结论

通过本文,您了解了两种通过带有端口的 SSH 下载文件的方法。通过口号连接服务器然后用SFTP,或者是利用tar命令将文件归档后下载。