Php

儲存遠端使用者的公共證書以進行 SSH 登錄

  • August 12, 2012

我一直在嘗試遵循本教程:This Tutorial,但在通過公鑰登錄時遇到了問題(沒有密碼提示)。我對unix命令行相當陌生。

我的情況是,我正在執行一個 php 腳本(ssh2)並在通過 ssh 成功連接後執行以下命令。

ssh -f -L 3307:127.0.0.1:3306 someuser@remote.server.com sleep 60 >> logfile

以下是我無法弄清楚的教程部分。我試過做 ssh-keygen 並將公鑰/私鑰儲存在我的 /home/someuser/.ssh/authorized_keys 和 authorized_keys.pub 文件中。但無濟於事:(,感謝您的幫助。

**避免密碼提示:**通常,在發出上述命令後,您將收到密碼提示以驗證使用者是否登錄到遠端電腦。同樣,這對自動化不利,因為讓應用程序與命令行提示符互動(或儲存純文字密碼)從來都不是一個好主意。在這種情況下,公鑰加密再次派上用場。如果遠端使用者的公共證書儲存在正在登錄的遠端使用者帳戶的 ~/.ssh/authorized_keys 文件中,則 SSH 不會提示輸入密碼。我們只需將我們的公鑰附加到這個文件中,密碼提示就不再是問題了。

不,沒有 ~/.ssh/authorized_keys.pub 文件,不要把你的私鑰放在 authorized_keys 中!您的私鑰應該只在生成的文件中,不要放在其他地方(可能只是備份)。

您要做的是,首先在您將啟動 ssh 命令的本地主機上,使用 ssh-keygen 創建密鑰,您可以根據需要使用或不使用密碼,但請記住,任何獲得此私鑰的人都沒有密碼也可以登錄。所以保持私密

然後在您要使用此密鑰登錄的遠端主機上,將生成的密鑰 id_dsa.pub(或您獲得的名稱)的公共部分放入 ~/.ssh/authorized_keys。

這樣就可以了。請記住,由於 ssh 強制執行安全性,因此文件權限非常重要。閱讀中的“文件”部分

man ssh

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