一般使用scp/ssh/rsync传输文件时,都需要输入密码。下面是免密码传输文件的方法。

假设要在两台主机之间传送文件,host_src & host_dst。host_src是文件源地址所在的机器,host_dst是目的地址所在的机器。

1. 在host_src机器上,用执行scp/ssh/rsync命令的用户登录,执行下面的命令:

$ ssh-keygen -t rsa

按回车健继续,默认的public key会被存放在

~/.ssh/id_rsa.pub:

Your public key has been saved in <your_home_dir>/.ssh/id_rsa.pub

2. 通过ftp, scp, rsync 等等方法把 id_rsa.pub 文件传输到 host_dest 机器。

3. 在host_dst用相应的账户登录

4. 把id_rsa.pub 的内容追加到 ~/.ssh/authorized_keys

$ cat id_rsa.pub >>~/.ssh/authorized_keys
$ chmod 700 ~/.ssh/authorized_keys

5. 注意ssh默认不允许root登录,需要修改/etc/ssh/sshd_config文件的PermitRootLogin选项,将no改为yes。

 

参考:https://blogs.oracle.com/jkini/entry/how_to_scp_scp_and