Sftp
當我使用私鑰進行連接時,重複性還原報告“無效的 SSH 密碼”
我正在測試具有重複性 0.6.15 的備份的恢復。
我可以使用以下命令和我的私鑰使用 ssh 和 sftp 登錄到我的備份伺服器:
…sftp
root@client:~# sftp -oPort=7843 backupUser@192.168.x.x Enter passphrase for key '/root/.ssh/id_rsa': Connected to 192.168.x.x sftp> exit
…ssh
root@client:~# ssh -p7843 backupUser@192.168.x.x Enter passphrase for key '/root/.ssh/id_rsa': Connected to 192.168.x.x Last Login: ....
我有以下還原腳本用於還原簽名和加密備份的內容:
#!/bin/bash export SIGN_PASSPHRASE='<signed-key-passphrase' export PASSPHRASE='<encryption-passphrase>' duplicity -v9 --encrypt-key="<encryption-key-id>" --sign-key="<signed-key-id>" --force \ scp://backupUser@192.168.x.x:7843//home/backupUser/backup /mnt/restore
但是,當我執行腳本重複時:
root@client~#: ./restore_script.sh
當 duplicity 使用它嘗試登錄到我的備份伺服器時,Duplicity 給了我以下錯誤:
Using archive dir: /root/.cache/duplicity/b1a470f45b67cd7784bc8e6449383df7 Using backup name: b1a470f45b67cd7784bc8e6449383df7 Import of duplicity.backends.hsibackend Succeeded Import of duplicity.backends.ftpbackend Succeeded Import of duplicity.backends.botobackend Succeeded Import of duplicity.backends.rsyncbackend Succeeded Import of duplicity.backends.imapbackend Succeeded Import of duplicity.backends.localbackend Succeeded Import of duplicity.backends.giobackend Succeeded Import of duplicity.backends.ftpsbackend Succeeded Import of duplicity.backends.cloudfilesbackend Succeeded Import of duplicity.backends.gdocsbackend Succeeded Import of duplicity.backends.tahoebackend Succeeded Import of duplicity.backends.u1backend Succeeded Import of duplicity.backends.webdavbackend Succeeded Import of duplicity.backends.sshbackend Succeeded Main action: restore ================================================================================ duplicity 0.6.15 (August 19, 2011) Args: /usr/bin/duplicity -v9 --encrypt-key=<encryption-key-id> --sign-key=<signature-key-id> --force scp://backupUser@192.168.x.x:7843//home/backupUser/backup /mnt/restore Linux client 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:50:42 UTC 2011 i686 i686 /usr/bin/python 2.7.2+ (default, Oct 4 2011, 20:03:08) [GCC 4.6.1] ================================================================================ Using temporary directory /tmp/duplicity-sLukkP-tempdir Registering (mkstemp) temporary file /tmp/duplicity-sLukkP-tempdir/mkstemp-12JD0o-1 Temp has 4995375104 available, backup will use approx 34078720. Running 'sftp -oPort=7843 -oServerAliveInterval=15 -oServerAliveCountMax=2 backupUser@192.168.x.x' (attempt #1) State = sftp, Before = 'Enter' State = sftp, Before = '' Invalid SSH password Running 'sftp -oPort=7843 -oServerAliveInterval=15 -oServerAliveCountMax=2 backupUser@192.168.x.x' failed (attempt #1) Removing still remembered temporary file /tmp/duplicity-sLukkP-tempdir/mkstemp-12JD0o-1 INT intercepted...exiting.
我的目錄中有一個公鑰
.ssh
,它應該允許重複登錄使用它而不是要求一個 ssh 密碼(我已經在伺服器上關閉了),所以我不明白為什麼伺服器不允許重複登錄。這是我的客戶列出的
.ssh
目錄、權限和所有內容:root@client:~# ls -la /root/.ssh total 16 drwx------ 2 root root 4096 2011-11-29 01:05 . drwx------ 8 root root 4096 2011-11-29 12:30 .. -rw------- 1 root root 1766 2011-11-29 01:06 id_rsa -rw-r--r-- 1 root root 442 2011-11-29 00:38 known_hosts
有什麼我想念的嗎?我讓備份工作得很好,我想在在這里達成協議並說它有效之前測試恢復備份。
好吧,我想通了。為了重複輸入 ssh 密鑰的密碼(不是gpg 加密密鑰),
keychain
必須安裝和配置,並且必須使用ssh-add
命令添加密鑰。我需要安裝
keychain
,所以我做了,然後添加我將其添加到我的
.bash_profile
喜歡中:keychain --clear id_rsa . ~/.keychain/$HOSTNAME-sh
現在假設我的公鑰與我的私鑰一起儲存在
/root/.ssh
目錄中,當我將使用者切換到時,root
我首先得到一個錯誤,但之後我執行ssh-add
,exit
退出帳戶,然後root
再次登錄。當我返回
root
帳戶時,系統會要求我輸入 ssh 私鑰的密碼。現在,重複似乎起作用了……就連接到另一台伺服器而言……我不再收到Invalid SSH Password
我之前收到的消息。