Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
swift-nio-ssh — SwiftNIO SSH ist eine programmatische Implementierung von SSH mit SwiftNIO. | Kitploit
Tools/GitHubGitHub/apple/swift-nio-ssh
Verschlüsselungs-/EntschlüsselungstoolsNetzwerksicherheitDienstprogramme & FrameworksAuthentifizierungRemote-Access-Tool
GitHubapple/swift-nio-ssh

swift-nio-ssh

SwiftNIO SSH ist eine programmatische Implementierung von SSH mit SwiftNIO.

Repository anzeigen
5137921vor 15 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

SwiftNIO SSH

Dieses Projekt enthält SSH-Unterstützung unter Verwendung von SwiftNIO.

Was ist SwiftNIO SSH?

SwiftNIO SSH ist eine programmatische Implementierung von SSH: das heißt, es ist eine Sammlung von APIs, die es Programmierern ermöglichen, SSH-sprechende Endpunkte zu implementieren. Entscheidend ist, dass es eher wie libssh2 als wie OpenSSH ist. SwiftNIO SSH liefert keine produktionsreifen SSH-Clients und -Server, sondern bietet die Bausteine, um solche Clients und Server zu erstellen.

Es gibt eine Reihe von Gründen, eine programmatische SSH-Implementierung bereitzustellen. Einer ist, dass SSH eine einzigartige Beziehung zur Benutzerinteraktivität hat. Technische Benutzer sind es gewohnt, interaktiv mit SSH zu arbeiten, entweder um Befehle auf entfernten Maschinen auszuführen oder um interaktive Shells zu nutzen. Die Fähigkeit, programmatisch auf diese Anfragen zu reagieren, ermöglicht interessante alternative Interaktionsmodi. Als frühere Beispiele können wir Twisted's Manhole nennen, das eine programmatische SSH-Implementierung namens conch verwendet, um einen interaktiven Python-Interpreter in einem laufenden Python-Server bereitzustellen, oder ssh-chat, einen SSH-Server, der anstelle der normalen SSH-Shell-Funktionalität einen Chatroom bereitstellt. Innovative Verwendungen sind auch für die TCP-Weiterleitung denkbar.

Ein weiterer guter Grund, eine programmatische SSH-Lösung bereitzustellen, ist, dass es nicht ungewöhnlich ist, dass Dienste mit anderen Diensten interagieren müssen, indem sie Befehle ausführen. Während Process dies für den lokalen Anwendungsfall löst, müssen die auszuführenden Befehle manchmal entfernt liegen. Obwohl Process einen ssh-Client als Subprozess starten könnte, um diese Ausführung durchzuführen, kann es wesentlich einfacher sein, SSH direkt aufzurufen. Dies ist der Zielanwendungsfall von libssh2. SwiftNIO SSH bietet das Äquivalent der Netzwerk- und Kryptographieschicht von libssh2 und ermöglicht es motivierten Benutzern, SSH-Sitzungen direkt aus Swift-Diensten heraus zu steuern.

Die aktuellsten Versionen von SwiftNIO SSH unterstützen Swift 5.9 und neuer. Die minimale Swift-Version, die von den SwiftNIO SSH-Versionen unterstützt wird, ist unten im Detail aufgeführt:

SwiftNIO SSHMinimale Swift-Version
0.0.0 ..< 0.3.05.1
0.3.0 ..< 0.4.05.2
0.4.0 ..< 0.5.05.4
0.5.0 ..< 0.6.25.5.2
0.6.2 ..< 0.9.05.6
0.9.0 ..< 0.9.25.8
0.9.2 ..< 0.10.05.9
0.10.0 ... 0.12.05.10
0.12.0 ..< 0.13.06.0
0.13.0 ..<6.1

Was unterstützt SwiftNIO SSH?

SwiftNIO SSH unterstützt SSHv2 mit den folgenden Funktionen:

  • Alle Session-Channel-Features, einschließlich Shell- und Exec-Channel-Anfragen
  • Direkte und umgekehrte TCP-Portweiterleitung
  • Nur moderne kryptografische Primitiven: Ed25519 und ECDSA über die wichtigsten NIST-Kurven (P256, P384, P521) für asymmetrische Kryptografie, AES-GCM für symmetrische Kryptografie, x25519 für den Schlüsselaustausch
  • Passwort- und Public-Key-Benutzerauthentifizierung
  • Unterstützt alle Plattformen, die von SwiftNIO und Swift Crypto unterstützt werden

Wie verwende ich SwiftNIO SSH?

SwiftNIO SSH bietet einen SwiftNIO ChannelHandler, NIOSSHHandler. Dieser Handler implementiert den Großteil des SSH-Protokolls direkt. Benutzer werden nicht erwartet, SSH-Nachrichten direkt zu generieren: stattdessen interagieren sie mit dem NIOSSHHandler über Kind-Channels und Delegaten.

SSH ist ein multiplexiertes Protokoll: Jede SSH-Verbindung wird in mehrere bidirektionale Kommunikationskanäle unterteilt, die entsprechend als "Channels" bezeichnet werden. SwiftNIO SSH spiegelt diese Konstruktion wider, indem es eine Abstraktion von "Kind-Channels" verwendet. Wenn ein Peer einen neuen SSH-Channel erstellt, erstellt SwiftNIO SSH einen neuen NIO Channel, der den gesamten Datenverkehr auf diesem SSH-Channel repräsentiert. Innerhalb dieses Kind-Channel sind alle Ereignisse streng in Bezug zueinander geordnet: Ereignisse in verschiedenen Channels können jedoch von der Implementierung frei verschachtelt werden.

Eine aktive SSH-Verbindung sieht daher wie folgt aus:

┌ ─ NIO Channel ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐

│     ┌────────────────────────────────┐    │
      │                                │
│     │                                │    │
      │                                │
│     │                                │    │
      │         NIOSSHHandler          │───────────────────────┐
│     │                                │    │                  │
      │                                │                       │
│     │                                │    │                  │
      │                                │                       │
│     └────────────────────────────────┘    │                  │
                                                               │
└ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘                  │
                                                               │
                                                               │
                                                               │
                                                               │
                                                               ▼
                     ┌── SSH Child Channel ─────────────────────────────────────────────────────────────┐
                     │                                                                                  │
                     │   ┌────────────────────────────────┐      ┌────────────────────────────────┐     ├───┐
                     │   │                                │      │                                │     │   │
                     │   │                                │      │                                │     │   ├───┐
                     │   │                                │      │                                │     │   │   │
                     │   │                                │      │                                │     │   │   │
                     │   │          User Handler          │      │          User Handler          │     │   │   │
                     │   │                                │      │                                │     │   │   │
                     │   │                                │      │                                │     │   │   │
                     │   │                                │      │                                │     │   │   │
                     │   │                                │      │                                │     │   │   │
                     │   └────────────────────────────────┘      └────────────────────────────────┘     │   │   │
                     │                                                                                  │   │   │
                     └───┬──────────────────────────────────────────────────────────────────────────────┘   │   │
                         │                                                                                  │   │
                         └───┬──────────────────────────────────────────────────────────────────────────────┘   │
                             │                                                                                  │
                             └──────────────────────────────────────────────────────────────────────────────────┘
Tool herunterladen