我正在使用以下代码使用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
远程服务器上,你将有一个名为authorized_keys
在/home/bob/.ssh
遥控器上,在它的公共密钥(例如ssh-rsa AAAA..<long-string-of-text>..cXrTp bob@host
)(你可以有多个授权密钥,每一个的推移它的文件在自己的线)。
在id_rsa
和id_rsa.pub
文件必须在那里你调用客户端系统上ssh2_auth_pubkey_file
通过你的PHP脚本和可读性。
这篇关于SSH密钥的文章很好地解释了如何为基于密钥的身份验证生成密钥对,以及如何将密钥传输到主机。
如果authorized_keys
文件中没有您要作为身份验证用户的公用密钥,则身份验证将无法进行。
另外,请确保采取必要的安全预防措施,包括使用密码短语保护私钥,使系统上的其他用户无法读取私钥,保护脚本中的密码短语或控制对脚本进行读取的文件的访问权限是否将其存储。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句