gpt4 book ai didi

php - PHP中的SSH2连接到远程服务器

转载 作者:搜寻专家 更新时间:2023-10-31 21:28:37 24 4
gpt4 key购买 nike

我正在使用以下代码通过 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')

如果我连接到远程服务器,远程服务器上是否需要一个 key 文件(公共(public)或私有(private)?),我如何引用它?我不确定代码是否相同或它的工作原理。

感谢任何解释。

最佳答案

为了让远程服务器接受 key ,您需要将公钥的副本放入名为 authorized_keys 的文件中在.ssh您登录的用户的主文件夹中的目录。

所以要验证为 bob在远程服务器上,您将有一个名为 authorized_keys 的文件在/home/bob/.ssh在带有公钥的 Remote 上(例如 ssh-rsa AAAA..<long-string-of-text>..cXrTp bob@host )(您可以拥有多个授权 key ,每个授权 key 在文件中各占一行)。

id_rsaid_rsa.pub文件需要在您调用 ssh2_auth_pubkey_file 的客户端系统上并可由您的 PHP 脚本读取。

这篇文章关于SSH Keys很好地解释了如何为基于 key 的身份验证生成 key 对以及如何将 key 传输到主机。

authorized_keys 中没有公钥为您尝试验证的用户创建文件,验证将不起作用。

另外,一定要采取必要的安全预防措施,用密码保护私钥,使系统上的其他用户无法读取私钥,并保护脚本中的密码或控制对脚本将访问的文件的访问从中读取它是否将被存储。

关于php - PHP中的SSH2连接到远程服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32729690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com