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, que no está disponible en los servicios de alojamiento web y servidores en la nube de Infomaniak, utilizando en su lugar la biblioteca phpseclib, que funciona con PHP nativo sin necesidad de una extensión específica.

 

Introducción

  • El uso de PECL SSH2 client provoca errores de tipo No se encontraron algoritmos de intercambio de claves compatibles o No se pudieron intercambiar las claves de cifrado en su última versión disponible.
  • Phpseclib permite:
    • La autenticación SSH mediante contraseña o clave privada.
    • La ejecución de comandos remotos.
    • La transferencia de archivos seguros (SFTP).
    • La gestión de claves SSH.

 

Utilizar 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('usuario', $key)) {
    exit('Autenticación fallida');
}

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

¿Le ha sido útil esta FAQ?