Hi David,
"C:\keys\x.key", $passphrase)) {
Also make sure the user that executes the scripts has the permissions to read those files (x.crt and x.key). Also make sure your keys are in the appropriate format. The documentation page for ssh2_auth_pubkey_file states that
pubkeyfile
The public key file needs to be in OpenSSH's format. It should look something like:
ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
Here's the link to that page https://www.php.net/manual/en/function.ssh2-auth-pubkey-file
Good luck!
Are your keys in the correct place? Based on the script you provided, the keys should be in the same location as the script, for example if the script is in C:\scripts the keys should also be in C:\scripts. If the keys are in another location best bet would be to adapt the script and provide absolute paths. For example if your script is in C:\scripts and your keys are in C:\keys you should adapt your script to something like
if (ssh2_auth_pubkey_file($connection, $user,
"C:\keys\x.crt",if (ssh2_auth_pubkey_file($connection, $user,
"C:\keys\x.key", $passphrase)) {
Also make sure the user that executes the scripts has the permissions to read those files (x.crt and x.key). Also make sure your keys are in the appropriate format. The documentation page for ssh2_auth_pubkey_file states that
pubkeyfile
The public key file needs to be in OpenSSH's format. It should look something like:
ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
Here's the link to that page https://www.php.net/manual/en/function.ssh2-auth-pubkey-file
Good luck!
On Mon, Feb 1, 2021 at 7:25 PM David Spector <david025@xxxxxxxxxxxxxxxxxxxxxx> wrote:
This is a reply to: 1/29/2021 1:12 PM, Jose Nobile
Can anyone help me?
My version of your code, adapted for Windows and cPanel, is as follows:
$connection = ssh2_connect($hostDomainName, $securePort,
array('hostkey'=>'ssh-rsa'));
echo "ssh2_connect: $connection";
if (ssh2_auth_pubkey_file($connection, $user,
"x.crt",
"x.key", $passphrase)) {
echo "Public Key Authentication Successful\n";
$sftp = ssh2_sftp($connection);
} else {
die('Public Key Authentication Failed');
}
Running this code produces an error:
"Starting...
ssh2_connect: Resource id #4
Warning: ssh2_auth_pubkey_file(): Authentication failed for nsr using
public key: Unable to open public key file in
C:\Dropbox\Private\Web\nsr-HMAC\upload\upload.php on line 39
Public Key Authentication Failed"
File x.crt begins:
-----BEGIN CERTIFICATE-----
File x.key begins:
"-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED"
Can anyone help me?
David Spector
Springtime Software