如何通过Linux终端将本地文件上传到服务器


47

我正在尝试使用Putty或SSH将本地文件上传到服务器,但没有在那里上传。

有没有直接方法可以从Linux终端将本地文件上传到服务器而不使用FTP等?


您正在寻找SFTP。

我想使用Linux Terminal将我的本地文件传输到服务器。假设我们以前是通过putty或ssh访问服务器,但是无法在同一终端上传输文件。

Answers:


64

当然。scp像这样使用(安全副本):

scp [source file] [username]@[destination server]:.

当然,更换括号[source file][username][destination server]以符合您的本地设置。因此,如果文件是,cool_stuff.txt并且您在远程服务器上的用户名是sanjeev,目标服务器是example.com,则命令将是:

scp cool_stuff.txt sanjeev@example.com:.

而且源也可以是远程的,因此您可以执行与上述示例相反的操作:

scp sanjeev@example.com:cool_stuff.txt .

该命令会将远程文件复制cool_stuff.txt到您所在的任何本地目录中。如果要对多个文件执行此操作,请*像使用普通cp命令一样使用通配符()。

此外,.just表示直接目录路径;例如运行命令时您所使用的命令或目标服务器上远程用户拥有的立即路径。但您也可以指定一个路径,例如/this/path/right/here在本地到远程示例中:

scp cool_stuff.txt sanjeev@example.com:/this/path/right/here

或本地的远程示例:

scp sanjeev@example.com:cool_stuff.txt /this/path/right/here

现在,如果远程服务器不允许SSH,而仅允许SFTP,则可以使用SFTP。但是scp在您只想抛弃文件而不是从命令行手动完成整个SFTP过程时,此功能非常有用。


13

当通过ssh密钥登录到远程服务器时,我们可以使用下面的-i标志将密钥传递给服务器:

scp -i /path/to/.ssh/id_rsa path/to/file/myFiles.gz myServer.com:/folder/on/server

-i identity_file
选择从中读取用于公共密钥身份验证的身份(私有密钥)的文件。
此选项直接传递给ssh(1)。


13

要添加到Jake的答案中,您可以.通过在URL末尾添加以下路径来指定要复制的位置(而不是仅复制位置):

scp /path/to/file username@servername/ip:/destination/folder/

1
仅供参考,远程主机和路径之间的空间是错误的,因此您需要在没有空间的情况下编写该信息!(目前无法编辑此答案)
Sliq
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.