默認情況下,在執行rsync命令時通常需要我們輸入密碼。但有時我們並不希望如此,那么如何實現無密碼執行rsync呢?
1. 測試通過ssh可以執行rsync(需要密碼)
執行rsync,確保你帳戶的密碼在遠程服務器上可以使用,並能夠將文件復制到遠程服務器。
例:將本地目錄 /home/linuxprobe同步到遠程目錄/back/linuxprobe(服務器地址:192.168.200.10) ,執行此操作時,服務器會要求你輸入密碼
rsync -avz -e ssh /home/linuxprobe / linuxprobe@192.168.200.10:/backup/linuxprobe/
2. 使用ssh-keygen生成密匙
現在我們來配置ssh使得通過ssh執行rsync時不再索要密碼。在本地服務器上使用ssh-keygen生成公鑰和秘鑰。
$ ssh-keygen Enter passphrase (empty for no passphrase): Enter same passphrase again:
注意:當它要求您輸入passphrase按下enter鍵,不需要給任何密碼。
3. 使用ssh-copy-id將公匙拷貝至遠程主機
使用ssh-copy-id命令將公鑰拷貝至遠程主機
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.200.10
注:執行以上操作時會要求你輸入遠程主機帳戶和密碼,然后就會自動將公鑰拷貝至遠程目錄。
4. 無需密碼通過ssh來執行rsync
現在,你可以不需要密碼通過ssh連接到遠程主機
ssh 192.168.200.10
再次執行rsync,它將不再要求你輸入密碼
rsync -avz -e ssh /home/linuxprobe/ linuxprobe@192.168.200.10:/backup/linuxprobe/
本文轉載自:http://www.linuxprobe.com/rsync-password-less-through-ssh.html
更多Linux干貨請訪問:http://www.linuxprobe.com/