Base de conocimientos

1 000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!

Usar SSH en PHP con phpseclib

Esta guía explica cómo trabajar sin el módulo PECL SSH2 client no disponible en los alojamientos web y servidores cloud de Infomaniak, utilizando en su lugar la biblioteca phpseclib, que funciona en PHP nativo sin necesidad de ninguna extensión específica.

 

Prólogo

  • El uso de PECL SSH2 client provoca errores de tipo No compatible key exchange algorithms found o Unable to exchange encryption keys en su última versión disponible.
  • Phpseclib permite:
    • La autenticación SSH por contraseña o clave privada.
    • La ejecución de comandos remotos.
    • La transferencia de archivos seguros (SFTP).
    • La gestión de claves SSH.

 

Usar phpseclib

Para integrar una conexión SSH en un script PHP, utilice phpseclib de la siguiente manera:

use phpseclib3\Net\SSH2;
use phpseclib3\Crypt\PublicKeyLoader;

$ssh = new SSH2('domain.xyz');
$key = PublicKeyLoader::load(file_get_contents('/path/to/private_key'));

if (!$ssh->login('utilisateur', $key)) {
    exit('Authentication Failed');
}

echo $ssh->exec('ls -la');

¿Le ha sido útil esta FAQ?