Sftp

當我使用私鑰進行連接時,重複性還原報告“無效的 SSH 密碼”

  • June 12, 2018

我正在測試具有重複性 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-addexit退出帳戶,然後root再次登錄。

當我返回root帳戶時,系統會要求我輸入 ssh 私鑰的密碼。現在,重複似乎起作用了……就連接到另一台伺服器而言……我不再收到Invalid SSH Password我之前收到的消息。

引用自:https://serverfault.com/questions/335939