Trying to connect using ssh2_auth_pubkey_file()

前端 未结 3 2304
离开以前
离开以前 2021-02-20 11:16

I am trying to make a php script that runs on the terminal that would connect to a remote server by ssh and retrieve a file. this is my code so far

#!/usr/bin/ph         


        
3条回答
  •  自闭症患者
    2021-02-20 11:51

    This is a known bug in php: password protected private key cannot be used on certain combinaisons.

    See: https://bugs.php.net/bug.php?id=58573

    ssh2_auth_pubkey_file() is broken when the public key file is protected with a password AND libssh2 is compiled with libgcrypt, which is what debian/ubuntu and probably others do. I'm working on a solution for this bug, but if you need this working rebuild libssh2 yourself with OpenSSL.

    A workaround may be to store the private key unencrypted. To decrypt the key:

    openssl rsa -in id_rsa -out id_rsaNOPASSWORD
    

    and then use the file id_rsaNOPASSWORD without supplying the fifth parameter 'passphrase'. It works, but you'll have to be careful with your decrypted key file. Anyway, the level of security is not really terribly affected, because even with an encrypted key, you would still need to pass the passphrase unencrypted to the ssh2_auth_pubkey_file function ...

    Hope it helps.

提交回复
热议问题