问题
# 将本地目录 dist/*同步到远程目录/home/fn1/demo
rsync -avz --delete dist/* root@106.52.242.123:/home/fn1/demo
执行以上命令,输入远程服务器密码,就能够将文件复制到远程服务器。
但每次都需要密码,有点繁琐,我又有点懒,于是有了这篇文章
解决
1、本地生成ssh公钥和秘钥
现在我们来配置ssh使得通过ssh执行rsync时不再索要密码。在本地服务器上使用ssh-keygen生成公钥和秘钥。
ssh-keygen
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
注:当它要求您输入passphrase按下enter键,不需要给任何密码。
2、使用ssh-copy-id将公匙拷贝至远程主机
ssh-copy-id -i ~/.ssh/id_rsa.pub root@106.52.242.123
注:执行以上操作时会要求你输入远程主机帐户和密码,然后就会自动将公钥拷贝至远程目录。
3、无需密码通过ssh来执行rsync
现在,你可以不需要密码通过ssh连接到远程主机
ssh 106.52.242.123
再次执行rsync,它将不再要求你输入密码
rsync -avz --delete dist/* root@106.52.242.123:/home/fn1/demo