Veröffentlicht in Linux, Tools

WinSCP: SFTP Server mit sudo-Befehl ausführen

Wer die Amazon Elastic Compute Cloud (kurz Amazon EC2) benutzt, der wird festgestellt haben, dass ein Login als root-Benutzer aus Sicherheitsgründen bei den von Amazon vorgegebenen Images nicht möglich ist. Stattdessen soll man sich als ec2-user anmelden und Befehle des Superusers mit dem Kommando sudo ausführen.

Verwendet man einen SFTP-Client (wie etwa WinSCP), dann kann das einen negativen Effekt haben. Möchte man nämlich über die grafische Oberfläche eine Datei öffnen, auf die der ec2-user normalerweise keinen Zugriff hat, bekommt man nur eine Permission denied-Anzeige:

Um das zu umgehen, muss der SFTP Server der EC2-Instanz mit dem sudo-Befehl ausgeführt werden.

Die Binärdatei des SFTP Servers kann sich je nach Installationen an folgenden Orten befinden: /usr/libexec/openssh/sftp-server/usr/lib/openssh/sftp-server oder /bin/sftp-server. Um die SFTP-Verbindung als Superuser zu benutzen, muss dann beispielsweise folgendes Kommando bei der Anmeldung ausgeführt werden: sudo su -c /usr/libexec/openssh/sftp-server.

Das kann man in WinSCP wie folgt einsellen:

  1. Gespeicherte Sitzung auswählen
  2. Bearbeiten
  3. Expertenmodus anwählen
  4. Umgebung -> SFTP auswählen
  5. sudo su -c /usr/libexec/openssh/sftp-server bei den Protokolloptionen für den SFTP Server eintragen
  6. Speichern
  7. Anmelden

Dieses Verfahren funktioniert allerdings nur, wenn man für die Anmeldung als ec2-user einen Schlüssel verwendet (und keine Passwort-Authentifikation).