Linux CLI Connect Manager?

6

Ich suche einen Verbindungsmanager für Linux, der in der CLI läuft. Mit Verbindungsmanager ist ein Programm gemeint, mit dem Sie Remoteverbindungen erstellen, speichern und schnell starten können. Ähnlich wie bei mRemote , mRemoteNG , Vrd , Terminals , Devolutions RDM usw. Sie sollten in der Lage sein, einen Verbindungstyp (ssh), ein Ziel (IP oder DNS) und Parameter wie SSH - Version, Benutzername / Passwort usw. Zu definieren

Wir sind dabei, die Sicherheit in einer Umgebung mit großen Manager-Service-Providern zu verbessern, und werden ein paar "Hop-Off" -Linux-Boxen erstellen. Die Idee ist, dass unser Team und der Level 1-Support SSH für diese Linux-Server durchführen und von dort aus eine Verbindung zu verschiedenen Netzwerkgeräten in der gesamten Umgebung herstellen. Es ist sowohl sicherer als auch aufgrund einiger vorhandener Routing-Funktionen (VRFs) erforderlich.

Idealerweise hoffe ich, dass die Lösung die Verbindung in mySQL oder ähnlichem speichert, damit wir von mehreren Computern (Hop-Off-Boxen) aus problemlos auf eine Verbindungsbibliothek zugreifen können.

Hat jemand ein Programm oder Projekt wie dieses angetroffen? Ich habe ein paar Apps für Linux gefunden, wie Remmmina , Monocaffe und PAC Manager , aber alle sind GUI. Ich möchte nicht VNC in die Hop-Off-Boxen müssen, da wir sowieso nur CLI für SSH benötigen.

Vielen Dank!

Mike M
quelle
Was ist mit Aliasen? Ich habe ein paar auf meinem Heimcomputer wie alias sshandy='ssh [email protected] -P 443 -i ~/sshandy' and folgt : alias sshacer = 'ssh 192.168.1.10'` Es ist vielleicht nicht perfekt, aber es ist definitiv machbar.
Rob
Rauben. Das wäre eine mögliche Lösung, aber ich suche etwas Skalierbareres. Das Erstellen neuer Aliase wäre nicht schlecht, aber das Aktualisieren und Entfernen vorhandener Aliase wäre ziemlich umständlich und fehleranfällig (denken Sie daran, dass der L1-Support diese auch verwendet). Wir müssten diese Alias-Datei auch mit den verschiedenen Servern synchronisieren (was möglich ist, nur nicht so elegant, wie ich es mir erhofft hatte). Ich möchte auch leicht auflisten und durch Connectios suchen, obwohl ich denke, wir könnten einen Alias ​​erstellen, der diese Datei cat & grep. Vielen Dank für den Vorschlag, andere?
Mike M
1
Scheint für mich ein Duplikat dieser Frage zu sein: superuser.com/a/214336/51741
Shadok

Antworten:

5

Was ist mit der ~ / .ssh / config-Datei? Einfach zu bedienen, zu warten und mit anderen zu teilen. Wenn Sie es freigeben müssen, wäre ein Git-Repository dafür perfekt.

Die Datei sieht folgendermaßen aus:

Host somename
  User username
  HostName 192.168.1.X
  Port 2222

Man ssh_config für weitere Optionen.

ggustafsson
quelle
Ich richte meine so ein und entferne meine Aliase.
Rob
Ich habe auch Aliase verwendet, aber es ist ein echtes Problem. Die ssh-Konfiguration funktioniert super. Ich bin faul, also habe ich folgendes: "für X in $ SSH_HOSTS; mache alias $ X =" ssh $ X "done" in meiner ~ / .zshrc-Datei, damit ich einfach die Hostnamen ohne den "ssh" -Teil eingeben kann :)
ggustafsson
Hoppla .. Habe den wichtigsten Code vergessen "[-f ~ / .ssh / config] && SSH_HOSTS = ($ (sed -nes / ^ Host // p '<~ / .ssh / config))" parst das ~ /.ssh/config file :)
ggustafsson
ggustafsson -Lässt die SSH-Konfigurationsdatei eine automatische Vervollständigung zu? IE Ich tippe "ssh my" {tab} und es vervollständigt "ssh myhost"
Mike M
1

Hier ist ein Code aus meiner .zshrc-Datei. Es vervollständigt automatisch die Hosts aus / etc / hosts, eine Liste, die Sie verwalten können, und die, mit denen Sie zuvor eine Verbindung hergestellt haben (wenn Sie HashKnownHosts noin Ihrer SSH-Konfiguration festgelegt haben). Die Einstellung ' HashKnownHosts no' kann als Sicherheitsrisiko angesehen werden, da Benutzer, die bereits Zugriff auf Ihre $HOME/.ssh/known_hostsDatei haben, die Systeme sehen können, mit denen Sie zuvor eine Verbindung hergestellt haben. Dies wurde von Grml-Konfigurationen gestohlen.

if is42 ; then
    [[ -r ~/.ssh/known_hosts ]] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
    [[ -r /etc/hosts ]] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
else
    _ssh_hosts=()
    _etc_hosts=()
fi
hosts=(
    $(hostname)
    "$_ssh_hosts[@]"
    "$_etc_hosts[@]"
    example.com
)
zstyle ':completion:*:hosts' hosts $hosts

Nach dem Hinzufügen funktioniert alles wie Zauberei.

xaocon
quelle
0

Verwenden Sie einige benutzerdefinierte Skripte und verwalten Sie sie über Puppet oder Git. Vollständige Anpassung, einfach über eine Marionette oder ein VCS zu verwalten. Insbesondere, da Sie nicht versuchen, eine vorhandene Lösung zu patchen, würde ich Ihnen dringend empfehlen, diese benutzerdefiniert auszuführen, damit Sie die volle Kontrolle darüber haben.

Tschad
quelle
0

Geschrieben in Ruby hat es eine schöne DSL zum Speichern von Verbindungen in ~ / .sshc-Datei

https://github.com/troydm/sshc

Troydm
quelle