0
我想连接我的EC2实例与ssh2 php模块。我已经从known_hosts文件获得公钥(格式:“ssh-rsa XXXX ...”放入“public.txt”文件),我使用亚马逊keypair.pem作为私钥(“ -----开始RSA私人密钥----- XXXX ...“private.pem)。无法连接到EC2在PHP与ssh2_auth_pubkey_file
我使用这个PHP代码:
$connection = ssh2_connect('XXXX.eu-west-1.compute.amazonaws.com', 22, array('hostkey'=>'ssh-rsa'));
if(!ssh2_auth_pubkey_file(
$connection,
'ubuntu',
'public.txt',
'private.pem'
))
die("Auth error");
$sftp = ssh2_sftp($connection);
我得到的错误是: ssh2_auth_pubkey_file():身份验证失败使用公钥Ubuntu的:用户名/公钥组合无效
我是什么做错了?
我们用这种方式解决了 – xspecial
任何想法为什么ssh2_auth_pubkey_file要求公钥?为什么公钥应该采用OpenSSH格式? –
@ bogdanioan.gabor - SSH的工作方式是您向其发送用户名和公钥以用于进行身份验证。如果服务器接受它,则需要使用私钥签名,以便服务器可以使用公钥对其进行验证。所以当libssh2请求公钥时,可能是因为它不能从私钥中提取公钥,也不能将格式转换为合适的公钥。 – neubert