2016-03-02 261 views
0

我必須在我的服務器上安裝一個公鑰,以便遠程腳本可以將ftp文件傳輸到我的服務器。無法添加ssh密鑰。 ssh-add返回1

我將公鑰放在我的〜/ .ssh目錄中,並確保ssh-agent正在運行,並且相關的env變量設置正確。

我確信,在公共密鑰權限被設置爲600

我跑的ssh-add和它沒有添加的公共密鑰。我運行了ssh-add並提供了公鑰的名稱,並要求輸入密碼。由於生成公鑰的用戶沒有使用密碼短語,因此我將其留空並按回車鍵。什麼都沒有發生,echo $?返回1.

我將公鑰更名爲標識。我再次運行ssh-add,並試圖添加密鑰,再次詢問密碼短語。我再次敲入並沒有發生任何事情,echo $?仍然返回1.

我發現了幾個答案,說ssh-add將添加私鑰如果您提供參數,並且您必須運行它沒有參數。這似乎不是現實。我已經嘗試了ssh2格式和openSSH格式的密鑰。

我也讀過,我可以手動添加密鑰。我讀過這個文件應該在〜/ .ssh中,我讀過不同的消息來源說它必須是authorized_keys,authorized_keys2和known_hosts。我嘗試了所有三個遠程腳本仍然無法登錄。

我用於authorized_keys中的條目的格式是「SSH-RSA AAAAB3 ... =」

權限的所有三個文件是600

我完全失去了。

我在Solaris 10上

+0

你能編輯你的問題來顯示運行ssh-add的例子嗎?包括您運行的實際命令以及它生成的實際輸出。重命名之前,密鑰文件的名稱是什麼? – Kenster

+1

我發現我的問題是,當我將密鑰添加到authorized_keys文件時,我在末尾有一個「=」,因爲我使用的另一臺服務器上的authorized_keys文件在每個條目的末尾都有。當我隨心所欲地移除它時,它開始工作。 – JustJustin

回答

0

我的問題是,我有一個=在我的authorized_keys文件行的末尾。

我已經添加了=,因爲這是我使用的另一臺服務器上的authorized_keys文件的寫法。我不知道爲什麼這樣,或者爲什麼我認爲這是必要的部分或格式,但刪除讓遠程用戶登錄沒有任何問題。