簡體   English   中英

PHP中的SSH2連接到遠程服務器

[英]SSH2 in PHP to connect to remote server

我正在使用以下代碼使用SSH2在本地連接,但我正在嘗試解決在連接到遠程服務器時如何處理公鑰/私鑰。

$SSH_CONNECTION = ssh2_connect('localhost', 22, array('hostkey'=>'ssh-rsa'));
ssh2_auth_pubkey_file($SSH_CONNECTION, 'username','/path/to/id_rsa.pub','/path/to/id_rsa')

如果我要連接到遠程服務器,遠程服務器上是否需要密鑰文件(公共或私有?),我該如何引用它? 我不確定代碼是否相同或確切如何工作。

感謝任何解釋。

為了使遠程服務器接受密鑰,您需要將公鑰的副本放在名為authorized_keys的文件中,該文件位於您登錄用戶的主文件夾的.ssh目錄中。

因此,要在遠程服務器上作為bob進行身份驗證,您將在遠程上的/home/bob/.ssh使用名為authorized_keys的文件,其中包含公鑰(例如ssh-rsa AAAA..<long-string-of-text>..cXrTp bob@host )(你可以擁有多個授權密鑰,每個密鑰在文件中都有自己的行)。

id_rsaid_rsa.pub文件需要位於客戶端系統上,您可以在其中調用ssh2_auth_pubkey_file並通過PHP腳本讀取。

這篇關於SSH密鑰的文章很好地解釋了如何為基於密鑰的身份驗證生成密鑰對,以及如何將密鑰傳輸到主機。

如果沒有為您嘗試進行身份驗證的用戶的authorized_keys文件中的公鑰,則身份驗證將不起作用。

此外,請務必采取必要的安全預防措施,使用密碼保護私鑰,使私鑰不被系統上的其他用戶讀取,並保護腳本中的密碼或控制對腳本將從中讀取的文件的訪問權限如果它將被存儲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM