当前位置: 首页 > 科技观察

ssh与远程服务器之间传输文件的几种方式

时间:2023-03-16 21:57:24 科技观察

我们经常通过ssh向远程服务器发送文件,或者从远程服务器拷贝文件到本地。一般来说,在本地和远程服务器之间传输文件有四种常见的方式:1)scp:这种方式很快就会被弃用;2)rsync:目前流行的文件传输命令;3)sshfs:通过ssh挂载远程目录;4)sftp客户端:通过sftp访问文件的桌面工具。此外,对于远程服务器,还需要知道它的地址和系统访问帐号(用户名、密码)。有了这个前提,让我们仔细看看这些方法。方法一:使用scp命令通过ssh复制文件我们前面提到scp即将启用,但是由于其语法类似于cp命令,它仍然受到许多人的青睐。让我们看看如何使用scp命令。将文件从远程计算机复制到本地计算机现在我们的任务是:将文件从远程服务器复制到本地登录系统。下面是将文件从远程系统上的用户主目录复制到本地登录系统的当前目录的通用语法。它看起来像这样:scpusername@ip_address:/home/username/filename。看到与cp命令的相似之处了吗?除了必须使用冒号:来指定用户名和IP地址之外,它几乎是一样的。在上面的示例中,我将文件remote.txt从远程服务器的/home/abhishek/my_file目录复制到本地计算机的当前目录。要使用此命令,您需要知道文件在远程服务器中的完整路径,Tab键补全路径对远程系统不起作用。复制本地文件到远程服务器再看一个例子,使用scp通过ssh将本地文件发送到远程服务器。语法如下:scpfilenameusername@ip_address:/home/username在上面的示例中,我将位于当前目录的本地文件local.txt复制到远程系统上abhishek用户的主目录。然后用这个用户登录远程系统,验证文件是否复制成功。您也可以复制目录。我们在上一篇文章中提到,scp的语法类似于cp命令。因此,您还可以使用scp复制目录,方法是使用-r选项。将本地目录复制到远程系统的语法如下:scp-rsource_dirusername@ip_address:/home/username/target_dir方法二:使用rsync通过ssh复制文件和目录由于scp即将被弃用,rsync是下一个ssh是在远程系统之间复制文件的最佳工具。事实上,它在很多方面都优于scp。它的命令语法与scp相同。旧版本的rsync必须使用rsync-essh,但这不再是必需的。将远程文件复制到本地计算机如果我们想将远程系统中的文件复制到当前登录系统中的当前目录,语法结构为:rsync用户名@ip_地址:/home/用户名/文件名。参考方法一中的例子,我们将remote.txt复制到本地系统的当前目录下,如下图所示:将文件从本地计算机复制到远程系统将文件从本地计算机复制到远程系统中对应的目录,语法结构如下:rsyncfilenameusername@ip_address:/home/username还是参考方法一中的例子,我们将local.txt复制到远程系统中,如下图:那么,如何复制目录呢?复制一个目录,使用-r选项,如scp:rsync-rsource_dirusername@ip_address:/home/username/target_dir看下面的例子,我把目录my_file从远程系统复制到本地系统:rsync是一个通用的工具。它本质上是一个在两个目录之间“递归同步”内容的工具,在进行自动备份时很受欢迎。方法三:使用SSHFS访问远程系统中的文件SSHFS(SSHFileSystem)可以用来访问远程文件和目录。但是,这对于复制文件来说不是很方便。这样,我们就可以在本地系统上挂载一个远程目录,然后在这个目录和本地系统之间复制文件。这相当于windows系统中远程桌面的概念。使用前需要先安装sshfs。在Debian或Ubuntu中,可以使用以下命令:sudoaptinstallsshfs安装完成后,就可以使用sshfs了。一个好习惯是为它创建一个目录:mkdirmount_dir然后使用下面的方法在远程计算机上挂载这个目录:sshfsusername@IP_address:path_to_dirmount_dir加载后,你可以将文件复制到这个目录,或者在把这个目录下的文件复制到其他目录下,就像在本地电脑上一样。cplocal_filemount_dir需要注意的是这个目录是工作加载的。工作完成后,需要卸载:umountmount_dir在下图的例子中,我在本地电脑中新建了一个目录remote_dir,然后将远程系统中的my_file目录挂载到本地的remote_dir目录中,然后将remote.txt文件复制到本地系统,最后卸载目录:方法4:使用基于GUI的SFTP客户端在远程系统之间传输文件我们将介绍的最后一个方法是文件可以在远程和本地系统之间传输使用FTP客户端。FileZilla是最受欢迎的跨平台FTP客户端之一,易于安装和使用。安装完成后,找到File->SiteManager(文件->站点管理器),添加IP地址、SSH端口号、用户名和密码等远程系统详细信息,如下图所示:成功后,窗口会分成两部分,左边是本地文件系统,右边是远程文件系统:复制文件的方法也很简单,只需将文件从左边拖放到正确的。将本地文件复制到远程系统;反之,将文件从右向左拖动,即把远程系统中的文件复制到本地计算机中。在复制过程中,窗口底部会显示一个进度条。