2011-07-05 160 views
0

我已經在本地和遠程之間設置了ssh密鑰對。ssh密鑰對連接工作,但通過ssh密鑰對rsyncd要求輸入密碼

ssh登錄工作不要求密碼

[email protected] ~$ssh -v remote 
.. 
debug1: Authentications that can continue: publickey.. 
debug1: Next authentication method: publickey 
debug1: Offering public key: /Users/user/.ssh/id_rsa 
debug1: Server accepts key: pkalg ssh-rsa blen 277 
debug1: Authentication succeeded (publickey). 
.. 
debug1: Entering interactive session. 
[email protected] ~$ 

的rsync通過ssh非rsyncd的模式下工作(注意單:),但問題是,rsyncd.conf在該模式中沒有諮詢。

[email protected] ~/bin$rsync -av -e "ssh -v -l [email protected]" [email protected]:/dir 
.. 
debug1: Authentications that can continue: publickey.. 
debug1: Next authentication method: publickey 
debug1: Offering public key: /Users/punkish/.ssh/id_rsa 
debug1: Server accepts key: pkalg ssh-rsa blen 277 
debug1: Authentication succeeded (publickey). 
.. 
debug1: Entering interactive session. 
debug1: Sending command: rsync --server --sender -vlogDtpre.iLs . /dir 
receiving file list ... done 
.. 
[email protected] ~/bin$ 

rsync通過ssh在rsyncd模式下失敗(請注意雙::),並請求密碼。

[email protected] ~/bin$rsync -av -e "ssh -v -l [email protected]" [email protected]::module 
.. 
debug1: Authentications that can continue: publickey.. 
debug1: Next authentication method: publickey 
debug1: Offering public key: /Users/punkish/.ssh/id_rsa 
debug1: Authentications that can continue: publickey.. 
debug1: Next authentication method: keyboard-interactive 
Password: 

我在做什麼錯?我的目標是在遠程機器上使用rsyncd.conf運行rsync。

+0

你確定''l'標誌'ssh'在這裏嗎?我認爲它應該是'ssh -l user remote'或'ssh user @ remote'。 –

+0

天哪dangit ......就是這樣。改成只是'ssh user @ remote'工作得很好。非常感謝。 – punkish

+0

所以我發佈了這個答案,你可以接受。 –

回答

1

你確定要在這裏登錄-l標誌嗎?我認爲它應該是ssh -l user remotessh [email protected]

我對rsync及其對ssh的使用一無所知,所以我不能真正說出它爲什麼在一個版本中運行,而不是在另一個版本中運行。

1

我有類似的問題,並遇到了我的設置中的一個主要區別,它看起來在你的是一樣的。

在您的SSH連接你的

debug1: Offering public key: /Users/user/.ssh/id_rsa 

用戶密鑰但rsync的連接上它是

debug1: Offering public key: /Users/punkish/.ssh/id_rsa 

您需要確保爲用戶生成的密鑰文件,您正在運行rsync命令。

0

這花了我幾個小時才能最終追蹤到,所以希望這將在未來幫助其他人。喬納森在答覆中指出,問題確實如此。您需要確保正在使用正確的SSH密鑰。在我的情況下,直接使用ssh時,使用了正確的密鑰。但是,rsync沒有找到正確的密鑰。

爲了解決這個問題,叫rsync的是這樣的:

rsync -avzu -e "ssh -i FULL_PATH_TO_SSH_PRIVATE_KEY" --delete SOURCE [email protected]:/DEST_PATH

訣竅是經過-i PARAM使用ssh指定的關鍵。