KeePass – Schema-spezifische URL-Überschreibungen für WinSCP und Putty

Eingebaute URL-Überschreibungen

Beim Doppelklick auf die URL wird normalerweise der Standardbrowser geöffnet.
Das kann man in den Einstellungen ändern unter: ‘Extras’ – ‘Optionen’ – ‘Integration’ – ‘URL-Schemaüberschreibungen…’

keepass4

Es gibt hier schon sog. “Eingebaute Überschreibungen”, die nicht bearbeitet werden können. Wenn man also gerne seine Links standardmäßig mit Firefox öffnen möchte, dann muss man hier einfach nur die entsprechenden Haken setzen bei:

http       cmd://{FIREFOX} "{URL}"
https      cmd://{FIREFOX} "{URL}"

und alle anderen Haken deselektieren.

Benutzerdefinierte URL-Überschreibungen

Das URL Feld kann noch viel mehr als nur Links im Browser öffnen. Man kann damit auch andere externe Programme ausführen, und sofern diese externen Programme auch Kommandozeilenargumente akzeptieren, kann man diese auch nutzen, um zusätzlich Inhalte aus anderen Feldern des KeePass Eintrages zu übergeben.

Dazu kann man “Benutzerdefinierte Überschreibungen” hinzufügen

keepass5

Das Vorgehen werde ich hier anhand von zwei Beispielen erläutern die ich selbst oft in der Praxis verwende.

1. Automatischer Aufbau einer FTP/SFTP Verbindung mit WinSCP

WinSCP Website

Schema: ftp
URL-Überschreibung:

cmd://"C:\Program Files (x86)\WinSCP\WinSCP.exe" ftp://{USERNAME}:{PASSWORD}@{URL:RMVSCM}

Schema: sftp
URL-Überschreibung:

cmd://"C:\Program Files (x86)\WinSCP\WinSCP.exe" sftp://{USERNAME}:{PASSWORD}@{URL:RMVSCM}:{S:Port}

Erläuterungen:

  • Schema: ftp bzw. sftp – So beginnt später der “Präfix” in der URL-Zeile eines KeePass Eintrages (ftp:// bzw. sftp://).
  • cmd:// – Der Befehl wird in der Windows Kommandozeile abgesetzt.
  • “C:\Program Files (x86)\WinSCP\WinSCP.exe” – Voller Dateipfad zur auszuführenden Exe- oder Batch-Datei (hier in Anführungsstrichen, da der Pfad Leerzeichen enthält).
  • sftp://{USERNAME}:{PASSWORD}@{URL:RMVSCM}:{S:Port} – String zum Aufbau einer SFTP Verbindung.
    Genereller Aufbau: VERBINDUNGSART://BENUTZERNAME[:PASSWORT]@FTPSERVER-URL[:PORT][/PFAD].
    Passwort, Port und Pfad sind optional. Wenn das Passwort weggelassen wird, fragt WinSCP dieses vorher ab. Das ist zwar sicherer, da es nirgends im System oder Zwischenspeicher hinterlegt wird, allerdings auch unbequemer. Wenn der Port weggelassen wird, wird der Standardport verwendet (FTP=21; SFTP= 22). Wenn kein Pfad angegeben wird, zeigt WinSCP des Root Verzeichnis nach dem Login.
  • ftp:// bzw. sftp:// – Art der Verbindung. (Dies ist wichtig für WinSCP und hat nichts mit dem URL Feld des KeePass Eintrages zu tun.
  • {USERNAME} – “Benutzername” Feld des KeePass Eintrages.
  • {PASSWORD} – “Passwort” Feld des KeePass Eintrages.
  • {URL:RMVSCM} – “URL” Feld des KeePass Eintrages: Hier tragen wir den FTP-/SFTP-Server ein, zu dem wir verbinden möchten. Die Angabe “:RMVSCM” bedeutet, dass hier das Präfix (z.B. ftp:// oder sftp:// wieder abgeschnitten wird).
  • {S:Port} – “Port” Feld des KeePass Eintrages. Da es standardmäßig kein “Port” Feld in einem KeePass Eintrag gibt, fügen wir im Reiter “Erweitert” manuell ein Feld hinzu, dass den Feldname “Port” erhält und als Feldwerd die entsprechende Portzahl. Dies habe ich nur bei SFTP benutzt, da ich bei FTP immer über den Standardport arbeite. Allerdings erfordert dies, dass ich bei SFTP IMMER einen Port angeben muss.

Beispiele für einen Keepass Eintrag für SFTP:

keepass6

keepass7

Nachdem alles abgespeichert wurde, sollte eine Doppelklick auf die URL des KeePass Eintrags (in der Tabellenansicht) genügen, um WinSCP zu öffnen und automatisch verbinden zu lassen.

ALTERNATIV:

Wenn es nicht erwünscht ist, dass ein Kommandozeilenbefehl mit dem unverschlüsselten Passwort abgesetzt wird, wäre eine Alternative, dass man in WinSCP eine Session speichert und in die KeePass URL z.B. den Name der Session integriert.

Vorteile:

  • Das Passwort wird von WinSCP verschlüsselt in der Registry oder in einer INI Datei hinterlegt.
  • Der Port wird von WinSCP gespeichert. Es ist kein zusätzliches Feld in KeePass für den Port notwendig.
  • In einer WinSCP Session kann zusätzlich ein Arbeitsverzeichnis auf dem Homerechner gespeichert werden, dass auch automatisch geöffnet wird.

Nachteile:

  • Wenn man in KeePass den Benutzernamen/Passwort/Port/Server ändert, muss dieser zusätzlich in der WinSCP Session geändert werden.

Beispiel:

WinSCP Session speichern:
winscp1
winscp2

KeePass Schema-spezifische URL-Überschreibung:

Schema: winscp
URL-Überschreibung:

cmd://"C:\Program Files (x86)\WinSCP\WinSCP.exe" {URL:RMVSCM}

KeePass Eintrag URL:

winscp://Verbindung1

(Weitere Werte im Eintrag sind theoretisch nicht erforderlich)

2. Automatischer Aufbau einer SSH Verbindung mit Putty

Schema: ssh
URL-Überschreibung:

cmd://"{APPDIR}\putty.exe" -ssh {USERNAME}@{URL:RMVSCM} -P {S:Port} -pw {PASSWORD}

Erläuterungen:

  • Schema: ssh – So beginnt später der “Präfix” in der URL-Zeile eines KeePass Eintrages (ssh://).
  • cmd:// – Der Befehl wird in der Windows Kommandozeile abgesetzt.
  • “{APPDIR}\putty.exe” – Voller Dateipfad zur auszuführenden Exe- oder Batch-Datei (hier in Anführungsstrichen, da der Pfad Leerzeichen enthält). Die Variable {APPDIR} ersetzt hier den Pfad, in dem sich die WinSCP.exe bedindet. Da Putty nicht installiert werden muss, habe ich die Datei Putty.exe einfach in das selbe Verzeichnis kopiert, in dem sich die Datei WinSCP.exe befindet.
  • -ssh {USERNAME}@{URL:RMVSCM} – String zum Aufbau einer SSH Verbindung.
  • -P {S:Port} – Übergabe des Ports.
  • -pw {PASSWORD} – Übergabe des Passworts.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.