我正在尝试使用 Putty 或 SSH 将本地文件上传到服务器,但无法上传。
有没有直接的方法可以从 Linux 终端将文件从本地上传到服务器,而无需使用 FTP 等?
答案1
当然可以。使用scp
(安全副本)如下:
scp [source file] [username]@[destination server]:.
当然,请替换括号中的[source file]
,[username]
和[destination server]
以匹配您的本地设置。因此,如果文件是cool_stuff.txt
,远程服务器上的用户名是sanjeev
,目标服务器是example.com
,则命令将是:
scp cool_stuff.txt [email protected]:.
并且源也可能是远程的,因此您可以执行与上述示例相反的操作:
scp [email protected]:cool_stuff.txt .
该命令会将远程文件复制cool_stuff.txt
到您所在的任何本地目录。如果您对多个文件执行此操作,只需使用通配符(*
),就像使用普通命令一样cp
。
此外,.
仅表示直接目录路径;例如您运行命令时所在的目录路径或目标服务器上的远程用户的直接路径。但您也可以像/this/path/right/here
本地到远程示例中那样指定路径:
scp cool_stuff.txt [email protected]:/this/path/right/here
或者此处的远程到本地示例:
scp [email protected]:cool_stuff.txt /this/path/right/here
现在,如果远程服务器不允许 SSH 而只允许 SFTP,那么 SFTP 就是最佳选择。但是,scp
当您只想发送文件而不想从命令行手动执行整个 SFTP 过程时,SFTP 非常有用。
答案2
当通过以下方式登录远程服务器时远程控制密钥,我们可以使用-i
标志将我们的密钥传递给服务器:
scp -i /path/to/.ssh/id_rsa path/to/file/myFiles.gz myServer.com:/folder/on/server
句法
scp -i <identity_file> <src_file> <user>@<server>:<dest_file>
-i 身份文件
选择从中读取公钥认证身份(私钥)的文件。
此选项直接传递给 ssh(1)。
答案3
添加杰克的回答.
,您可以通过在 URL 末尾添加路径来指定要复制到的位置(而不仅仅是位置),如下所示:
scp /path/to/file username@servername/ip:/destination/folder/