Zum Inhalt springen
🛠️ToolsShed

SSH Config Generator

Generiere ~/.ssh/config-Einträge für mehrere Hosts mit benutzerdefinierten Einstellungen.

Host-Eintrag 1
~/.ssh/config
Host myserver
  HostName 192.168.1.100
  User ubuntu
  IdentityFile ~/.ssh/id_rsa
  ServerAliveInterval 60

So verwenden Sie:

  1. Ausgabe in ~/.ssh/config speichern
  2. Führen Sie aus: chmod 600 ~/.ssh/config
  3. Verbinden Sie sich mit: ssh <HostAlias>

Über dieses Tool

SSH Config Generator vereinfacht den Prozess der Verwaltung mehrerer SSH-Verbindungen, indem er ~/.ssh/config-Einträge programmgesteuert generiert. Anstatt Ihre SSH-Konfigurationsdatei manuell zu bearbeiten und für jeden Server Host-Aliase, IP-Adressen und Schlüsselpfade zu merken, können Sie mit diesem Tool alle Ihre SSH-Hosts in einem strukturierten Format definieren und die vollständige Konfigurationsdatei in Sekunden generieren. Eine gut organisierte SSH-Konfiguration ist für Entwickler, Systemadministratoren und DevOps-Ingenieure, die häufig Verbindungen zu verschiedenen Servern herstellen, unverzichtbar.

Um das Tool zu verwenden, geben Sie Ihre SSH-Hosts mit den entsprechenden Einstellungen ein—wie Hostname, Port, Benutzername, Identitätsdateipfad und alle zusätzlichen SSH-Optionen. Der Generator formatiert diese Einträge automatisch gemäß SSH-Konfigurationssyntax und zeigt die Ausgabe an, die Sie dann direkt in Ihre ~/.ssh/config-Datei kopieren oder zu Ihrer bestehenden Konfiguration hinzufügen können. Dieser Ansatz eliminiert Syntaxfehler und stellt eine konsistente Formatierung über alle Ihre Host-Definitionen hinweg sicher, unabhängig davon, wie viele Server Sie verwalten.

Häufig gestellte Fragen

Code-Implementierung

import paramiko

# SSH with config file support using Paramiko
config = paramiko.SSHConfig()
with open('/home/user/.ssh/config') as f:
    config.parse(f)

host_config = config.lookup('myserver')
print(host_config)
# {'hostname': '192.168.1.100', 'user': 'ubuntu', 'port': '22'}

# Connect using resolved config
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(
    hostname=host_config['hostname'],
    username=host_config.get('user', 'root'),
    port=int(host_config.get('port', 22)),
    key_filename=host_config.get('identityfile', [None])[0]
)
stdin, stdout, stderr = client.exec_command('uptime')
print(stdout.read().decode())
client.close()

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.