拥有多台服务器或测试的朋友也许常常会遇到在不同机器之间拷贝文件的情况,通常的做法通过FTP传输,当然也可以通过HTTP,SAMBA等,但这些都有一个通病,即每次必须输入密码或经过复杂的配置,很不方便.
下面我介绍一种安全又快速的远程复制文件的方法供大家参考:
1.命令:SCP --secure copy (remote file copy program)
些命令是openssh-clients附带的,机器之间传输完全是加密的
2.配置方法:
1)保证安装了SSH,最好是SSH2比较好
2)开启SSH证书认证
即,在配置文件(/etc/ssh/sshd_config)里,设定
RSAAuthentication yes
PubkeyAuthentication yes
3)生成并分发密钥对
$ ssh-keygen –d
屏幕提示:
Generating public/private dsa key pair.
Enter file in which to save the key (/home/mms/.ssh/id_dsa):
# 按回车保存为: /home/mms/.ssh/id_dsa,即当前用户mms的私钥
Enter passphrase (empty for no passphrase):
# 按回车,表示读取密钥时不需要密钥的密码
Enter same passphrase again:
# 确认密钥的密码,必须和上面的输入相同
Your identification has been saved in /home/mms/.ssh/id_dsa.
# 私钥保存信息
Your public key has been saved in /home/mms/.ssh/id_dsa.pub.
# 公钥保存信息
The key fingerprint is:
ec:41:e8:08:38:0b:f8:1e:bc:92:98:32:fc:d7:69:7d mms@mms1.lxhd.com
# 密钥指纹
分发公钥
为了使用密钥,必须将公钥分发到所要登录的远程服务器上.
a).copy公钥到所要登录的远程服务器的指定用户的家目录下,例如:
copy id_dsa.pub到remote_host:/home/[user]/.ssh/
这里[user]为sftp使用的登录用户.若目录/home/[user]/.ssh/不存在,请先创建之.
b).将copy来的公钥文件改名为authorized_keys,如果已经存在authorized_keys,可以使用命令: cat id_dsa.pub >> authorized_keys 将其内容附加到authorized_keys的末尾
c).修改公钥文件的访问权限
chmod 644 authorized_keys
d)重启SSH服务
3.示例
scp test.txt root@192.168.6.90:/tmp
以上命令会将本地文件test.txt拷贝到远程机器192.168.6.90的/tmp目录下.
(全文结束)