无密码通过ssh执行rsync

302 阅读1分钟

问题

# 将本地目录 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

其他

toutiao.io/posts/onvhn…