Linux下用SCP无需输入密码传输文件 

要求:需要从A免密码输入复制文件至B。
1. 在主机A上执行如下命令来生成配对密钥:
[root@wqk1 mnt]# 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.
The key fingerprint is:
ec:3e:ae:d2:a6:64:db:98:87:78:11:e6:a2:d9:c4:a4 root@wqk1.object.com
[root@wqk1 mnt]# cd ~/.ssh/
[root@wqk1 .ssh]# ls
id_rsa  id_rsa.pub  known_hosts
2. 将 .ssh 目录中的 id_rsa.pub 文件复制到 主机B 的 ~/.ssh/ 目录中,并改名为  authorized_keys。 
[root@wqk1 .ssh]# scp id_rsa.pub root@192.168.10.107:/root/.ssh/authorized_keys
 
以后从A主机scp到B主机就不需要密码了。
3.使用此方法需要注意:复制的两台计算机需要用相同的账户名,这里都是用的root。为了安全起见,需要在两台机器中创建相同的账号,然后在A上用su命令切换至账号下,
 
执行第1步,第二步中复制文件时可能.ssh目录并不存在,需要手动创建。
 
 
4、在第2步中如果机器中已经存在authorized_keys文件,则需注意,这个文件可以包含多个SSH验证信息,这时可用 cat >>命令将验证文件内容附加上去。
比如复制到scp .ssh/id_rsa.pub 192.168.10.107:/root/.ssh/a.pub
然后执行cat ~/.ssh/a.pub >> ~/.ssh/authorized_keys