一般使用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