Zum Inhalt
Kuonen.Remote

Befehlszeile kremote

ssh, scp, psftp, keygen, agent und sitzungen mit allen Schaltern.

kremote ist ein einzelnes Programm mit Unterbefehlen. Wer PuTTY kennt, findet die Schalter von plink, pscp, psftp, puttygen und Pageant wieder; wer OpenSSH kennt, die von ssh und scp. Die alten Namen gelten als Aliase.

BefehlAliasZweck
kremote sshplinkTerminal, entfernte Befehle, Tunnel; auch Telnet, Rlogin, Raw, SUPDUP und seriell
kremote scppscpDateien kopieren
kremote psftpsftpinteraktiv oder mit Befehlsdatei wie psftp
kremote keygenputtygenSchlüssel erzeugen und umwandeln
kremote agentpageantSSH-Agent
kremote sitzungensessionsgespeicherte Sitzungen auflisten
kremote [adresse] …Datei-Befehle interaktiv oder als Skript, siehe Skripte

Jeder Befehl zeigt mit -h bzw. --help seine Hilfe; kremote --version nennt die Fassung.

Gemeinsame Schalter

Diese Schalter gelten für ssh und scp; psftp kennt die mit einem Stern.

  • -P port – Port (bei ssh auch -p) *
  • -l benutzer – Benutzer *
  • -i datei – Schlüsseldatei (OpenSSH, PEM, PKCS#8 oder PPK) *
  • -pw kennwort oder -pwfile datei – Kennwort; aus der Datei gilt die erste Zeile *
  • -hostkey SHA256:… – genau diesen Hostschlüssel erwarten (bei ssh auch -o HostKey=…) *
  • -load sitzung – gespeicherte Sitzung als Vorlage; weitere Schalter überschreiben sie *
  • -batch – nie nachfragen: kein Kennwort, keine Passphrase, kein unbekannter Hostschlüssel *
  • -accepthostkey – einen unbekannten Hostschlüssel annehmen und speichern (einen geänderten nie)
  • -J sprunghost – über einen Sprunghost verbinden; auch der Name einer gespeicherten Sitzung
  • -proxycmd befehl – über einen lokalen Befehl verbinden, mit %host und %port
  • -agent, -noagent – Agent benutzen (Vorgabe) bzw. nicht
  • -C – Kompression; -4, -6 – nur IPv4 bzw. IPv6
  • -v – Ablauf auf Standardfehler

Kennwörter auf der Befehlszeile sind für andere Benutzer desselben Rechners sichtbar; besser sind Schlüssel, der Agent oder -pwfile mit einer Datei, die nur man selbst lesen darf.

kremote ssh

kremote ssh [schalter] [benutzer@]host [befehl]
  • Ohne Befehl öffnet ssh ein Terminal; mit Befehl führt es ihn aus und endet mit dessen Rückgabewert.
  • -t erzwingt ein Terminal, -T verhindert es. Ohne Angabe gibt es eines, wenn kein Befehl angegeben und die Eingabe nicht umgeleitet ist.
  • -m datei liest den Befehl aus einer Datei, -s ruft ein Subsystem auf (etwa sftp).
  • -L [bind:]port:ziel:port leitet einen lokalen Port weiter, -R … einen entfernten, -D [bind:]port öffnet einen SOCKS-Proxy. Jede Weiterleitung meldet ihren Port auf Standardfehler.
  • -N öffnet nur die Weiterleitungen, ohne Befehl, bis die Verbindung endet.
  • -W host:port (oder -nc) verbindet Standardein- und -ausgabe mit host:port – für ProxyCommand anderer Programme.
  • -A leitet den Agenten weiter, -X die X11-Anzeige, -K meldet sich mit GSSAPI/Kerberos an.
  • -sessionlog datei schreibt alles mit, -sessionlog-text datei nur den druckbaren Text, -logappend hängt an. Platzhalter im Namen: &Y, &M, &D, &T, &H, &P.

Andere Protokolle

-telnet, -rlogin, -raw, -supdup und -serial wählen statt SSH ein anderes Protokoll. Bei -serial ist das Ziel die Leitung, etwa /dev/ttyUSB0 oder COM3; -sercfg stellt sie ein: Baudrate, Datenbits (5 bis 8), Parität (n, o, e), Stoppbits (1, 2) und Flusssteuerung (N keine, X XON/XOFF, R RTS/CTS), etwa -sercfg 19200,8,n,1,X.

Beispiele

kremote ssh -i ~/.ssh/id_ed25519 anna@server.example
kremote ssh anna@server.example "df -h /srv"
kremote ssh -N -L 5432:localhost:5432 -J sprung anna@db.intern
kremote ssh -batch -hostkey SHA256:Qm9… -pwfile ~/.geheim sicherung@nas "./sichern.sh"
kremote ssh -serial /dev/ttyUSB0 -sercfg 115200,8,n,1,N

kremote scp

kremote scp [schalter] quelle… ziel

Eine Seite ist entfernt ([benutzer@]host:pfad), die andere lokal; zwischen zwei Servern kopiert scp nicht. Alle Quellen liegen auf demselben Host. C:\… und Pfade mit / vor dem Doppelpunkt gelten als lokal, IPv6-Adressen stehen in eckigen Klammern. * und ? im letzten Pfadteil wirken auf beiden Seiten.

  • -r – Ordner samt Inhalt (ohne -r werden Ordner übersprungen)
  • -p – Änderungszeit und Rechte übernehmen
  • -q – ohne Fortschrittsanzeige
  • -ls – den entfernten Ordner auflisten
  • -limit KB/s – Tempo begrenzen
  • -sftp (Vorgabe) oder -scp – das Protokoll darunter

Vorhandene Ziele werden überschrieben.

kremote scp -r bilder/ anna@server.example:/srv/web/bilder
kremote scp "anna@server.example:/var/log/*.log" ./protokolle/
kremote scp -load web -ls web:/srv/web

kremote psftp

kremote psftp [schalter] [benutzer@]host

Öffnet eine SFTP-Sitzung mit der Eingabeaufforderung kremote> und den Befehlen aus Skripte. Zusätzlich zu den gemeinsamen Schaltern:

  • -b datei – Befehle aus der Datei ausführen
  • -bc – jeden Befehl vor dem Ausführen zeigen
  • -be – bei Fehlern weitermachen

kremote keygen

kremote keygen -t ed25519 [-C kommentar] [-o datei]
kremote keygen eingabe [-O format] [-o datei]
  • -t ed25519, -t ecdsa oder -t rsa – neuen Schlüssel erzeugen
  • -b bits – RSA: Vorgabe 3072; ECDSA: 256, 384 oder 521
  • -C kommentar – Vorgabe benutzer@rechner
  • -o datei – Ausgabe; beim Erzeugen entsteht daneben datei.pub. Unter Linux und macOS bekommt die private Datei die Rechte 600.
  • -O format – private-openssh (Vorgabe), private bzw. ppk (PuTTY PPK v3), private-ppk2, private-pkcs8, public-openssh oder fingerprint
  • -N – neue Passphrase (ohne -N fragt keygen beim Schreiben nach; leer heisst keine)
  • -P – bisherige Passphrase der Eingabe
  • -l – Fingerabdruck und Randomart zeigen
  • -L bzw. -y – öffentlichen Schlüssel im OpenSSH-Format zeigen
kremote keygen -t ed25519 -C "anna@laptop" -o ~/.ssh/id_ed25519
kremote keygen alt.ppk -O private-openssh -o ~/.ssh/id_rsa
kremote keygen ~/.ssh/id_ed25519 -l

kremote agent

kremote agent [-a ort] [-t sekunden] [-c] [schlüsseldatei …]

Startet einen SSH-Agenten mit den angegebenen Schlüsseln (verschlüsselte fragen nach der Passphrase) und läuft bis Strg+C.

  • -a ort – Socket bzw. Pipe. Vorgabe unter Windows \\.\pipe\openssh-ssh-agent (die Pipe von OpenSSH für Windows), sonst $XDG_RUNTIME_DIR/agent.sock bzw. ~/.kuonen-remote/agent.sock
  • -t sekunden – so lange bleiben die Schlüssel geladen
  • -c – jede Nutzung auf der Konsole bestätigen

Unter Linux und macOS gibt der Agent SSH_AUTH_SOCK=…; export SSH_AUTH_SOCK; aus; wer die Variable in seiner Shell setzt, dessen ssh, git und kremote finden ihn. Unter Windows antwortet er zusätzlich als Pageant, wenn keiner läuft.

kremote agent -t 3600 ~/.ssh/id_ed25519
# in einem zweiten Terminal die ausgegebene Zeile übernehmen, etwa:
export SSH_AUTH_SOCK=/run/user/1000/agent.sock

kremote sitzungen

kremote sitzungen listet die gespeicherten Sitzungen der App als Name und Adresse, nach Namen sortiert. kremote sitzungen --ssh-config gibt sie im Format von ~/.ssh/config aus.

Eine gespeicherte Sitzung benutzen ssh, scp und psftp mit -load name; Gross- und Kleinschreibung spielt keine Rolle. Ein blosser Name als Ziel ohne -load gilt als Hostname. -J nimmt Sitzungsnamen direkt.

Unbekannte Hostschlüssel

Beim ersten Kontakt zeigt kremote Typ, Länge, Fingerabdruck (SHA256) und Randomart des Hostschlüssels und fragt: j speichern und verbinden, e nur dieses Mal, n abbrechen. Hat sich ein bekannter Schlüssel geändert, erscheint eine deutliche Warnung – dahinter kann ein Angriff stecken.

Im Stapelbetrieb (-batch) fragt kremote nie, sondern bricht ab. Für Skripte darum den Fingerabdruck mit -hostkey SHA256:… vorgeben oder den Schlüssel einmal interaktiv annehmen. Fremde TLS-Zertifikate bei FTPS und WebDAV behandelt kremote genauso.

Rückgabewerte

WertBedeutung
0Erfolg; bei ssh mit Befehl der Rückgabewert des Befehls
1Fehler: Verbindung, Anmeldung, Übertragung, Skriptabbruch
2falscher Aufruf (fehlendes Ziel, zu wenige Pfade); die Hilfe steht auf Standardfehler
128ssh: der entfernte Befehl endete durch ein Signal
130abgebrochen mit Strg+C bzw. SIGTERM

Umgebungsvariablen

  • TERM – Terminaltyp für ssh (Vorgabe xterm-256color)
  • SSH_AUTH_SOCK – der Agent
  • DISPLAY, XAUTHORITY – für die X11-Weiterleitung
  • AWS_PROFILE, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, AWS_REGION, AWS_DEFAULT_REGION – Zugang für s3://

In lokalen Pfaden (-i, lcd …) werden ~ und Umgebungsvariablen aufgelöst.