JavaScript is required to for searching.
跳过导航链接
退出打印视图
在 Oracle Solaris 11.1 中管理远程系统     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

1.  使用远程系统(概述)

2.  管理 FTP 服务器(任务)

3.  访问远程系统(任务)

访问远程系统(任务列表)

登录到远程系统 (ssh)

远程登录验证 (ssh)

/etc/ssh_known_hosts.ssh/known_hosts 文件

使用安全 Shell 登录之后发生的情况

如何登录到远程系统 (ssh)

从远程系统注销(exitlogout

登录到远程系统以复制文件 (sftp)

基本 sftp 命令

如何打开和关闭与远程系统的 sftp 连接

如何从远程系统复制文件 (sftp)

如何将文件复制到远程系统 (sftp)

使用 scp 命令进行远程复制

复制操作的安全注意事项

指定复制操作的源和目标

如何在两个系统之间复制文件 (scp)

索引

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

使用 scp 命令进行远程复制

scp 命令可在本地系统与远程系统之间或者两个远程系统之间复制文件或目录。您可(在使用 ssh 命令登录后)从远程系统使用此命令,也可从本地系统使用此命令。scp 命令使用 ssh 进行数据传输。因此,scp 命令与 ssh 命令使用相同的验证方法并且提供相同的安全性。

通过 scp 可以执行以下远程复制操作:

复制操作的安全注意事项

要在系统之间复制文件或目录,必须拥有登录和复制文件的权限。

作为 ssh 命令的一部分,scp 命令要求您拥有目标系统的用户帐户或主机密钥访问权限。有关详细信息,请查阅《Oracle Solaris 11.1 管理:安全服务》中的第 15  章 "使用 安全 Shell"


注意

注意 - cpscp 命令覆盖文件时不发出任何警告。执行该命令之前,请确保文件名正确。


指定复制操作的源和目标

使用 scp 命令可以指定源(要复制的文件或目录)和目标(要将文件或目录复制到的位置)。通过使用波浪号字符 (~) 和 shell 通配符(*、? 等),可以缩短路径字符串。

所有 shell 程序都会将波浪号字符 (~) 展开为当前用户的起始目录。当前用户是指正在执行 shell 的用户。如果用户 jack 的起始目录为 /export/home/jack,则对于用户 jack~/myfile.txt 将展开为 /export/home/jack/myfile.txt

此展开方式也适用于远程路径。如果用户 jack 要复制其起始目录中的文件,则以下三种路径描述等效:

当引用其他用户的远程起始目录时,此展开方式也很有用。在这种情况下,您需要将用户名附加在波浪号字符后面。对于用户 jackmars:~jill/myfile.txt 等效于 mars:/export/home/jill/myfile.txt,但前者较短,更易于输入。

如何在两个系统之间复制文件 (scp)

  1. 确保您在目标系统上拥有复制文件的权限。

    scp 命令要求进行验证。您必须拥有目标系统上的帐户或授权公钥,具体取决于使用的验证方法。您至少应在源系统上具有读取权限,在目标系统上具有写入权限。


    注意

    注意 - 如果您没有目标系统的帐户或者目标系统未配置为允许公钥,您将收到验证错误。例如:

    $ scp mars:/var/tmp/testdir/letter.txt .
    Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive)

    确保您拥有在目标系统上配置的用户帐户或公钥访问权限才能进行验证。请参见《Oracle Solaris 11.1 管理:安全服务》中的"安全 Shell 验证"


  2. 确定源和目标的位置。

    如果不知道源或目标的路径,可以先按登录到远程系统 (ssh)中所述,使用 ssh 命令登录到远程系统。然后,浏览远程系统直到找到该位置。继而执行下一步,而无需从远程系统注销。

  3. 复制文件或目录。
    $ scp [-r] [[user1@]hostname1:]file1 ... [[user2@]hostname2:]file2
    -r

    用于以递归方式复制整个目录。

    user1, user2

    用于远程主机的登录帐户。

    hostname1, hostname2

    要从其中复制文件或将文件复制到的远程主机的名称。

    file1

    要复制的文件名或目录名称。可以在一个命令行中包含多个源文件名。

    file2

    目标文件名或目录名称。

示例 3-5 使用 scp 命令将远程文件复制到本地系统

在本示例中,scp 用于将远程系统 pluto/home/jones 目录中的文件 letter.doc 复制到本地系统上的工作目录中。

$ scp pluto:/home/jones/letter.doc .
The authenticity of host 'pluto (192.168.56.102)' can't be established.
RSA key fingerprint is b4:88:7b:cf:f5:23:d3:ad:0b:14:22:31:74:7b:6c:74.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.102' (RSA) to the list of known hosts.
Password:
letter.txt           100% |*****************************|    23       00:00   
$ 

在本示例中,因为是首次访问系统 pluto,出现了 RSA 密钥指纹消息。

此处,命令行结尾处的 "." 符号表示本地系统上的当前工作目录。

示例 3-6 使用 scp 命令将本地文件复制到远程系统

在此示例中,scp 用于将本地系统 earth 的起始目录 (/home/smith) 中的文件 notice.doc 复制到远程系统 pluto/home/jones 目录中。

$ scp notice.doc pluto:/home/jones
Password:
notice.doc           100% |*****************************|     0       00:00    

由于未提供远程文件名,因此文件 notice.doc 将以相同名称复制到 /home/jones 目录。

在以下示例中,将重复执行前面示例中的 scp 操作,但本例中 scp 是从本地系统上的另一工作目录 (/tmp) 执行的。请注意,"~" 符号用于表示当前用户的起始目录:

$ scp ~/notice.doc pluto:/home/jones
Password:
notice.doc            100% |*****************************|     0       00:00