Welche Befehle kann ich mit SSH (chrooted) ausführen?

Der SSH Zugriff auf Ihr Webhosting ist mit den Abonnementen "Standard" und "Business" automatisch aktiviert. 

Als Reseller können Sie den SSH-Zugriff für Ihre Kunden gemäss der folgenden Anleitung aktivieren: 
→ FAQ: Wie aktiviere ich den SSH-Zugang für meine Kunden in Plesk (Reseller)?

 

1. Login / Verbindungsaufbau

  • Verwenden Sie den SSL-Port 2121 und den Haupt-FTP-Benutzer der Domain:
# ssh <FTP-Hauptbenutzer>@<server> -p2121
ihrbenutzer@server.host.ch's password:
user@server /> 
  • Alternativ können Sie sich mit einem SSH-Client wie z.B. PuTTYSecureCRT o.ä. verbinden.
  • Der Haupt-FTP-Benutzer ist in Plesk mit einem Symbol markiert:

 

Tragen Sie Ihren Domainnamen ein um den Servernamen und weitere Informationen anzuzeigen:

 

 

2. Verfügbare Befehle

  • Die folgenden Befehle können mit dem eingeschränkten SSH-Zugriff (chrooted) ausgeführt werden.

    Basis-Befehle awk, basename, cat, cd, chgrp, chmod, chown, cp, cut, date
    echo, env, expr, file, gawk, grep, hostname, less, ln, ls
    mkdir, more, mv, printenv, pwd, readlink, rm, sed, sleep
    sort, stat, stty, tail, timeout, touch, tput, tr, uname, uniq
    wc, which, xargs, zgrep, zless
    Netzwerk / Dateiübermittlung curl, rsync, scp, ssh, ssh-keygen, ssh-keyscan, wget
    Editor vi, vim, nano
    Komprimierung / Archivierung gunzip, gzip, tar, unzip, zip, bunzip2, bzip2
    Suche find, grep, diff
    Datenbank mysql, mysqldump
    Entwickler-Tools

    composer (Version 2), composer1 (Version 1), composer2 (Version 2)

    git, patch, wp (WP-CLI)

    PHP 7.4: /usr/bin/php bzw. php
    PHP 8.0: /opt/php80/bin/php
    PHP 8.1: /opt/php81/bin/php
    PHP 8.2: /opt/php82/bin/php

 

3. Weitere Hinweise

MySQL Verbindungsaufbau

Hinweis:

Die Verbindung zum Datenbank-Server muss zwingend über 127.0.0.1 erfolgen.

 

 

  • Hierfür muss an erster Stelle in Plesk der Zugriff von localhost und 127.0.0.1 erlaubt werden. Klicken Sie hierzu in Plesk unter "Datenbanken > Benutzerverwaltung" auf den entsprechenden Benutzer und aktivieren Sie dann unter "Zugriffssteuerung" die Option "Remoteverbindungen zulassen von" und tragen Sie im darunterliegenden Feld in zwei aufeinanderfolgenden Zeilen localhost und 127.0.0.1 ein.
  • Beispiel:
user@server />  mysql -h 127.0.0.1 -u<BENUTZER> -p<PASSWORT> <DBNAME>

 

Composer

  • Composer ist global installiert und kann wie folgt aufgerufen werden:
$ composer

 

  • Beispiel:
$ composer create-project -s dev typo3/flow-base-distribution testprojekt

 

Eigener SSH-Key hinterlegen

  • Um ohne Passwort zu verbinden, können Sie jederzeit Ihren Public SSH-Key auf dem Server hinterlegen. Erstellen Sie hierzu ein Verzeichnis ".ssh" auf Root-Ebene (/) und legen Sie den Key in der Datei authorized_keys ab:
user@server /> mkdir ~/.ssh && chmod 700 ~/.ssh
user@server /.ssh> cd .ssh
user@server /.ssh> vi authorized_keys
user@server /.ssh> chmod 600 authorized_keys
Der Public SSH-Key muss auf einer einzelnen Zeile in der Datei authorized_keys hinzugefügt werden.
Die Dateien id_rsa und id_rsa.pub des Servers haben keinen Einfluss auf das Login von aussen und müssen nicht geändert werden.

 

WordPress CLI / Drupal (drush / Drupal Console)

  • Bei Ausführung von wp Commands wird folgender Fehler ausgegeben: Keine Datenbankverbindung möglich
Error: Error establishing a database connection

 

  • bzw. bei drush
 * connect the database through a socket. The socket file may be
wrong or the php-cli may have no access to it in a jailed shell.

 

  • Standardmässig hinterlegt die Applikation "localhost" als Datenbank-Host. Da die Shell-Umgebung mit TCP arbeitet, kann darauf nicht via Socket zugegriffen werden. Somit ist eine Anpassung in der Konfig-Datei erforderlich. Sie können entweder "localhost:3306" auf "127.0.0.1:3336" ändern oder die Konfig dynamisch gestalten.

 

  • Beispiel WordPress (wp-config.php):
/** Tell WP-CLI to use TCP instead of socket connection */
if ( defined( 'WP_CLI' ) && WP_CLI ) {

/** MySQL hostname for WP-CLI */
define('DB_HOST', '127.0.0.1:3306');

} else {

/** MySQL hostname */
define('DB_HOST', 'localhost:3306'); }

 

4. PHP Version ändern

  • Standardmässig wird PHP 7.2 beim Ausführen des Befehls "php" verwendet. Sie haben jedoch die Möglichkeit dies mit einem Alias nach Ihren Bedürfnissen anzupassen.

 

  • Beispiel PHP 7.4:
alias php='/opt/php74/bin/php' 
echo "alias php='/opt/php74/bin/php'" >> /.bash_profile

export PATH=/opt/php74/bin:$PATH
echo "export PATH=/opt/php74/bin:\$PATH" >> /.bash_profile