(20201026已解決)bash指令碼中給rsync指定密碼

Quant_Learner發表於2020-11-01
  • 問題描述

    rsync通過ssh將本地資料同步到遠端伺服器,需要互動式輸入密碼.

    Linux命令大全/rsync可以看到有一個引數--password-file=FILE, 可以從FILE中獲得密碼.

    對於這個FILE,要求600許可權.

    適用上述引數出現:

    The --password-file option may only be used when accessing an rsync daemon
    

    rsync 原生的無密碼同步方法記錄》這裡給出了詳細解釋,還是有些複雜

  • 優選方案

    ssh設為免密登入,這樣呼叫sshrsync就可以免密了。

    參見《How to Setup Rsync without password using SSH on Linux

    還會出現問題,如果建立祕鑰ssh-keygen時輸入了passphrase 密碼,那ssh不需要登入賬號密碼,但是還需要這個passphrase密碼。

    # 本地A客戶端,連線伺服器B
    # 在A操作
    ssh-keygen # passphrase 為空,不然後面rsync登入不要使用者密碼,還是要這個密碼
    ssh-copy-id usr@ip -p 22 # 這裡-i指定id_rsd.pub要確認好當下資料夾和預設新生成檔案anthorized_keys中位置,這一步將本地id_rsd.pub追加到B伺服器的~/.ssh/anthorized_keys中,如果沒有會自定新建anthorized_keys中
    
  • References

  1. rsync 用法教程
  2. Rsync設定免輸入密碼定期同步檔案資料夾
  3. How to Setup Rsync without password using SSH on Linux

相關文章