Chinaunix首页 | 论坛 | 博客
  • 博客访问: 22876
  • 博文数量: 8
  • 博客积分: 170
  • 博客等级: 入伍新兵
  • 技术积分: 75
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-09 09:51
文章分类

全部博文(8)

文章存档

2012年(2)

2011年(6)

scp

分类: Python/Ruby

2012-02-29 18:34:09

scp
可以用这个命令把文件从本地计算机拷贝到远程计算机,或者反之,甚至可以在两台远程计算机之间用“scp”命令拷贝文件。

语法:
用下面的命令把本地文本复制到远程机器
scp -p localdir/to/filelocation username@hostname:/dir/for/file     ---cjc
或者
从远程机器复制文件到本地目录
scp -p remote_username@remote_ip:remote_file  localdir/to/filelocation  ----cjc

注意:“-p”选项表示文件的改变和访问时间属性以及权限,在拷贝过程中被保留。通常是需要这样的。  


实现步骤:
scp命令远程复制的时候,每次执行都需要输入密码,如果是脚本自动备份或者复制文件的时候,这样肯定很不方便。这个时候,我们就要用到了ssh-keygen让他们建立信任关系,步骤如下

1. a机器ip为192.168.1.250,b机器ip为192.168.1.240;a机器想访问b机器scp远程复制时不输入密码。

2. 原理:在a机器上利用ssh-keygen生成密钥对,将私钥放在自己家目录的.ssh目录下,然后将公钥拷贝到b(也就是需要访问b机器而不需要密码),并将公钥文件命名为authorized_keys即可

3. 步骤如下:
1)在a上,生成密钥对:
[root@test250 .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):   -- 回车
Enter passphrase (empty for no passphrase):    -- 回车(表示不需要证书密码)
Enter same passphrase again:    -- 回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
.......
2)将公约复制到b机器上去:
[root@test250 .ssh]# scp id_rsa.pub root@192.168.1.240:/root/.ssh/authorized_keys
root@192.168.1.240's password:
id_rsa.pub                                                                      100%  394     0.4KB/s   00:00  
注意:完成此操作,会在a机器上产生一个文件:known_hosts,里面记录b主机的IP和一个密钥---cjc

3)测试 
[root@test250 .ssh]# scp testfile root@192.168.1.240:/root/usr/
testfile                                                                      100%  39
此处因为还没有信任,所以需要输入用户名和密码,复制完之后,信任关系就已经建立。


其他运用
从unix系统scp传输文件值windows机器:
1.在windows上安装软件winsshd软件,选择“个人试用版”
2.配置:oetting”->“windows acounts”中输入用户名和导入key(unix机器的id_rsa.pub)
3.启动服务
4.完成
5.unix机器就可以使用scp上载或下载至windows机器。
阅读(829) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~