日期:2014-05-16  浏览次数:20773 次

Linux文件传送命令scp

Linux文件传送命令

SCP(Secure Copy)

  scp 命令是 SSH 中最方便有用的命令了,试想,在两台服务器之间直接传送文件,仅仅用 scp 一个命令就完全解决了。你可以在一台服务器

上以 root 身份运行 #scp servername:/home/ftp/pub/file1 ./ 这样就把另一台服务器上的文件 /home/ftp/pub/file1 直接传到本机器的当前目录下,当然你也可以用 #scp /tmp/file2 servername:/boot 把本机上的文件 /tmp/file2 送到另一台机器的 /boot 目录下。而且整个传送过程仍然是用 SSH 加密的。

  scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 。 与rcp 不同的是,scp 在需要进行验证时会要求你输入密码或口令。

最简单的应用实例

  最简单的应用如下 :

  scp 本地用户名@IP地址:文件名 1 远程用户名 @IP 地址 : 文件名 2

  [ 本地用户名 @IP 地址:] 可以不输入 , 可能需要输入远程用户名所对应的密码 .

  可能有用的几个参数 :

  -v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .

  -C 使能压缩选项 .

  -P 选择端口 . 注意 -p 已经被 rcp 使用 .

  -4 强行使用 IPV4 地址 .

  -6 强行使用 IPV6 地址 .

  -r Recursively copy entire directories.

  如——

  copy 本地的档案到远程的机器上

  scp /etc/lilo.conf my@www.upsdn.net:/home/my

  会将本地的 /etc/lilo.conf 这个档案 copy 到 www.upsdn.net,使用者my 的家目录下。

  =====================================================

  例如:

  copy 本地的档案到远程的机器上

  scp /etc/lilo.conf k@net67.ee.oit.edu.tw:/home/k

  会将本地的 /etc/lilo.conf 这个档案 copy 到 net67.ee.oit.edu.tw,使用者 k 的家目录下。

  copy远程机器上的档案到本地来

  scp k@net67.ee.oit.edu.tw:/etc/lilo.conf /etc

  会将 net67.ee.oitdu.tw 中 /etc/lilo.conf 档案 copy 到本地的 /etc 目录下。

  保持从来源 host 档案的属性

  scp –p k@net67.ee.tw:/etc/lilo.conf /etc

  在此必须注意使用者的权限是否可读取远程上的档案,若想知道更多关于 scp 的使用方法,可去看看 scp 的使用手册。

ssh-keygen

  产生公开钥 (pulib key) 和私人钥 (private key),以保障 ssh 联机的安性, 当 ssh 连 shd 服务器,会交换公开钥上,系统会检查 /etc/ssh_know_hosts 内储存的 key,如果找到客户端就用这个 key 产生一个随机产生的session key 传给服务器,两端都用这个 key 来继续完成 ssh 剩下来的阶段。

  它会产生 identity.pub、identity 两个档案,私人钥存放于identity,公开钥 存放于 identity.pub 中,接下来使用 scp 将 identity.pub copy 到远程机器的家目录下.ssh下的authorized_keys。 .ssh/authorized_keys(这个 authorized_keys 档案相当于协议的 rhosts 档案), 之后使用者能够不用密码去登入。RSA的认证绝对是比 rhosts 认证更来的安全可靠。

  执行:

  scp identity.pub k@linux1.ee.oit.edu.tw:.ssh/authorized_keys

  若在使用 ssh-keygen 产生钥匙对时没有输入密码,则如上所示不需输入密码即可从 net67.ee.oit.edu.tw 去登入 linux1.ee.oit.edu.tw。在此,这里输入的密码可以跟帐号的密码不同,也可以不输入密码。