Die App ist eine Schicht über öffentlichen Bibliotheken. Was sie kann, steht auch eigenen Programmen offen: Dateien übertragen und synchronisieren, SSH-Befehle ausführen, Tunnel öffnen, Schlüssel erzeugen. Die Bibliotheken sind für .NET 10, AOT- und trimming-tauglich und haben keine fremden Abhängigkeiten.
Pakete
| Paket | Inhalt |
|---|---|
Kuonen.Remote.Motor | der Einstieg: Sitzungen, Übertragung, Warteschlange, Synchronisierung, Kennwortspeicher, Import |
Kuonen.Remote.Ssh | SSH-Client, Kanäle, Weiterleitungen, Schlüssel und Schlüsseldateien, Agent |
Kuonen.Remote.Sftp, Kuonen.Remote.Scp | SFTP und SCP |
Kuonen.Remote.Ftp, Kuonen.Remote.WebDav, Kuonen.Remote.S3 | FTP/FTPS, WebDAV, S3 |
Kuonen.Remote.Terminal | Telnet, Rlogin, Raw, SUPDUP, seriell, Terminal-Emulator |
Kuonen.Remote.Gemeinsam | Fehler, Mitschnitt, gemeinsame Bausteine |
Kuonen.Krypto | die Kryptografie (ML-KEM, sntrup761, X25519, Ed25519, ChaCha20-Poly1305 …) |
Kuonen.Licensing | die Lizenzprüfung |
Ein Verweis auf Kuonen.Remote.Motor zieht alle übrigen nach. Die Pakete stehen auf der Seite Download.
Beispiel
var profil = Sitzungsprofil.AusAdresse("sftp://anna@server.example/", out _);
profil.Schluesseldatei = "~/.ssh/id_ed25519";
profil.Hostschluessel = "SHA256:…";
await using var system = await Sitzung.OeffneDateisystemAsync(profil, new MeinDialog(), kennwort: null, CancellationToken.None);
await new Uebertragung(LokalesDateisystem.Instanz, system)
.UebertrageDateiAsync("bericht.pdf", "/home/anna/bericht.pdf", CancellationToken.None);
MeinDialog implementiert ISitzungsDialog und beantwortet, was sonst die App fragt: Kennwort, Passphrase, unbekannter Hostschlüssel oder fremdes
Zertifikat. Ist der Hostschlüssel wie oben fest vorgegeben, wird danach nie gefragt.
Welche Funktion wo
| Funktion | Typ |
|---|---|
| Dateisystem öffnen (SFTP, SCP, FTP, WebDAV, S3) | Sitzung.OeffneDateisystemAsync, IDateisystem |
| Hoch- und Herunterladen, Fortsetzen, Masken, Drosseln | Uebertragung, UebertragungsOptionen, Dateimaske |
| parallele Warteschlange | Warteschlange, Auftrag |
| Synchronisieren, Ordner beobachten | Synchronisierung, OrdnerBeobachter |
| SSH-Befehle und Terminal | SshClient, SshVerbindung, SshKanal |
| Weiterleitungen | Weiterleitung, WeiterleitungsRegel |
| Proxy und Sprunghost | ProxyOptionen, SshClientOptionen.Sprunghost |
| Telnet, Rlogin, Raw, SUPDUP, seriell | TelnetVerbindung, RloginVerbindung, RawVerbindung, SupdupVerbindung, SerielleVerbindung |
| Schlüssel erzeugen und lesen | PrivaterSchluessel.Erzeuge, Schluesseldatei |
| Agent | AgentServer |
| Sitzungen und Kennwörter | Sitzungsspeicher, Kennwortspeicher, Import |