通过SSH在Linux机器之间传输文件

通过SSH在Linux机器之间传输文件

简介

在Linux机器之间通过SSH传输文件是系统管理员和开发者的一项常见任务。SSH( Secure Shell )是一个协议,它允许你在机器之间安全地传输文件,以及远程访问和管理它们。在这篇文章中,我们将探讨通过SSH传输文件的不同方法,并通过例子和命令演示这一过程。

设置SSH

在你通过SSH传输文件之前,你需要在源机器和目标机器上都设置SSH。SSH是一个安全通信协议,允许你远程访问和管理你的Linux机器。它在两台机器之间建立一个 加密的隧道 ,保护你的数据不被窃听和篡改。

You can check if SSH is already installed on your machine by running the following command −

$ ssh -v

如果输出显示了 SSH 的版本,它就已经被安装了。如果没有,你可以用你的发行版的软件包管理器安装它。

$ sudo apt-get install ssh # on Ubuntu
$ sudo yum install ssh # on CentOS

一旦安装了SSH,你就可以启动SSH服务并配置它进行远程访问。

$ sudo service ssh start # on Ubuntu
$ sudo systemctl start ssh # on CentOS

SCP (安全拷贝)

SCP(安全复制) 是一个命令行工具,允许你通过SSH在机器之间安全地传输文件。SCP的语法类似于普通的 cp 命令,但增加了”-scp “选项。

要从本地机器复制一个文件到远程机器,请使用下面的语法

$ scp [source file] [user]@[destination host]:[destination path]

例如,要从本地机器复制一个名为 “file.txt “的文件到IP地址为 “192.168.1.100 “的远程机器,并将其保存在用户 “john “的主目录下,使用以下命令

$ scp file.txt john@192.168.1.100:~/

要从远程机器复制一个文件到本地机器,请使用以下语法 —

$ scp [user]@[source host]:[source path] [destination file]

例如,要从IP地址为 “192.168.1.100 “的远程机器上复制一个名为 “file.txt “的文件,并将其保存在本地机器的主目录下,使用以下命令

$ scp john@192.168.1.100:~/file.txt ~

SCP是一个在机器之间快速复制单个文件的伟大工具,但如果你需要传输多个文件或整个目录,使用SFTP会更有效率。

SFTP(安全文件传输协议)

另一种通过SSH传输文件的方式是通过 SFTP (安全文件传输协议)。SFTP与FTP(文件传输协议)类似,但它使用SSH对数据传输进行加密。

要使用 SFTP 传输文件,你首先需要使用以下命令在远程机器上打开一个SFTP会话—-。

$ sftp [user]@[host]

例如,要与IP地址为 “192.168.1.100 “的远程机器和用户 “john “打开一个 SFTP 会话,使用以下命令

$ sftp john@192.168.1.100

例如,要与IP地址为 “192.168.1.100 “的远程机器和用户 “john “打开一个SFTP会话,使用以下命令

$ sftp john@192.168.1.100

一旦连接,你可以使用以下SFTP命令来传输文件

  • put [源文件] [目标文件] – 从本地机器上传文件到远程机器

  • get [源文件] [目标文件] – 从远程机器下载一个文件到本地机器

  • ls – 列出远程机器上当前目录下的文件

  • lls – 列出本地机器上当前目录下的文件

  • cd [directory] – 改变远程机器上的当前目录

  • lcd [directory] – 改变本地机器上的当前目录

高级功能

你可以用 SCPSFTP 的许多高级功能来处理更复杂的文件传输情况。例如,你可以使用SCP的’-p’选项来保留文件的权限和时间戳,或者使用’-r’选项来递归复制整个目录。此外,你可以使用 ssh-keygen 来生成一个密钥对,这可以用来验证远程机器 ,而不需要密码。

总结

在Linux机器之间通过 SSH 传输文件是一种安全和有效的管理和交换数据的方式。 SCPSFTP 是两个常用的工具,用于通过SSH传输文件。这两个工具都很容易使用,并提供了一种安全的方式来传输数据。通过遵循本文提供的命令和例子,你应该能够轻松地在Linux机器之间通过SSH传输文件。此外,你可以使用上面提到的高级功能来定制你的文件传输过程,以满足你的具体需求。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程