PHP SSH2-utvidelsen gjør det mulig å automatisere serveradministrasjonstekster gjennom sikre SSH-forbindelser. Ved å bruke denne klassen kan du kjøre kommandoer, overføre filer og administrere vertsmiljøer programmatisk, noe som forbedrer operasjonsmessig effisiens og reduserer manuell inngrep.

Krav

Før du begynner, sørg for at SSH2-utvidelsen er installert og aktivert i PHP-miljøet ditt. Du kan vanligvis installere denne utvidelsen ved hjelp av pakkehåndtereren din eller ved å kompilere den fra kilden.

Slik bruker du PHP SSH2-klassen

  1. Trinn 1: Opprett SSH-forbindelse

    Bruk SSH2-funksjonene i PHP for å opprette en forbindelse til fjernserveren. Du må gi vertsnavnet eller IP-adressen, portnummeret (vanligvis 22 for SSH) og autentiseringsopplysninger (brukernavn og passord eller SSH-nøkkel).

    $connection = ssh2_connect('remote_host', 22);
    if (!$connection) {
        die('Kan ikke koble til.');
    }
  2. Trinn 2: Autentiser

    Autentiser enten med passordbasert eller nøkkelbasert autentisering. For økt sikkerhet anbefales SSH-nøkler over passord.

    if (!ssh2_auth_password($connection, 'username', 'password')) {
        die('Autentisering mislyktes.');
    }
  3. Trinn 3: Kjør kommandoer

    Når SSH-forbindelsen er etablert, kan du kjøre kommandoer på fjernserveren ved hjelp av ssh2_exec()-funksjonen. Dette lar deg utføre oppgaver som å opprette kataloger, endre filer eller kjøre skript fra fjern.

    $command = 'ls -l /path/to/directory';
    $stream = ssh2_exec($connection, $command);
    if (!$stream) {
        die('Kan ikke kjøre kommando.');
    }
    
    // Les kommandoutdata
    stream_set_blocking($stream, true);
    $output = stream_get_contents($stream);
    fclose($stream);
    
    echo $output;
  4. Trinn 4: Overfør filer

    Du kan overføre filer sikkert mellom lokalserveren og fjernserveren ved hjelp av PHP SSH2-klassen. Funksjoner som ssh2_scp_send() og ssh2_scp_recv() lar deg kopiere filer til og fra fjernserveren.

    // Send fil til fjernserver
    ssh2_scp_send($connection, '/local/path/file.txt', '/remote/path/file.txt', 0644);
    
    // Motta fil fra fjernserver
    ssh2_scp_recv($connection, '/remote/path/file.txt', '/local/path/file.txt');
  5. Trinn 5: Håndter feil

    Det er viktig å håndtere feil ordentlig når du jobber med SSH-forbindelser i PHP. Sjekk for feil etter hver SSH-operasjon og håndter dem påpasselig, enten ved å logge dem, vise feilmeldinger til brukeren eller ta korrigeringstiltak.

  6. Trinn 6: Følg sikkerheitsbest practices

    Sørg for at du følger sikkerheitsbest practices når du bruker PHP SSH2-klassen. Dette inkluderer å bruke sterke autentiseringsmetoder (som SSH-nøkler i stedet for passord), validering av brukerinput for å forhindre kommandoinnsprangshacks og begrense tilgang til følsomme operasjoner.

Komplett eksempel

Her er et komplett eksempel som demonstrerer hvordan man kobler til en fjernserver, autentiserer og kjører en kommando:

Dette eksemplet kobler til en fjernserver, autentiserer med et brukernavn og passord, og kjører ls -l-kommandoen for å liste filer i en katalog. Du kan tilpasse dette eksemplet til å passe dine spesifikke vertshostingoppgaver og behov.