Linux CLI Connect Manager?


6

Sto cercando un gestore connessioni per Linux che funziona nella CLI. Per essere chiari, per gestione connessione intendo un programma che ti consente di creare, salvare e avviare rapidamente connessioni remote. Simile a mRemote , mRemoteNG , Vrd , Terminals , Devolutions RDM , ecc. Dovresti essere in grado di definire un tipo di connessione (ssh), destinazione (IP o DNS) e parametri come versione SSH, nome utente / password, ecc.

Stiamo rafforzando la sicurezza in un ambiente di provider di servizi di gestione di grandi dimensioni e creeremo un paio di box Linux "hop-off". L'idea è che il nostro team e il supporto di livello 1 forniranno SSH a quei server Linux, e da lì si collegheranno a varie apparecchiature di rete in tutto l'ambiente. È sia più sicuro che richiesto a causa di alcuni degli instradamenti (VRF) in atto.

Idealmente, spero che la soluzione memorizzi la connessione in mySQL o simili in modo da poter accedere facilmente a una libreria di connessioni da più macchine (hop-off box).

Qualcuno ha incontrato un programma o un progetto come questo? Ho trovato alcune app per Linux, come Remmmina , Monocaffe e PAC Manager , ma sono tutte GUI. Non voglio dover inserire VNC nelle caselle hop off poiché abbiamo comunque bisogno solo della CLI per SSH.

Grazie!


E gli alias? Ho un paio sulla mia macchina di casa in questo modo: alias sshandy='ssh user@connection.com -P 443 -i ~/sshandy' and alias sshacer = 'ssh 192.168.1.10'` Potrebbe non essere perfetto, ma è sicuramente fattibile.
Rob,

Rapinare. Sarebbe una soluzione potenziale, ma sto cercando qualcosa di più scalabile. Creare nuovi alias non sarebbe poi così male, ma aggiornare quelli esistenti e rimuoverli sarebbe piuttosto ingombrante e soggetto a errori (ricorda che anche il supporto L1 li userà). Dovremmo anche sincronizzare quel file alias con diversi server diversi (il che è possibile, ma non così elegante come avevo sperato). Vorrei anche elencare e cercare facilmente tra i connettori, anche se immagino che potremmo creare un alias che cat & grep quel file. Grazie per il suggerimento, altri?
Mike M,

1
Mi sembra un duplicato di questa domanda: superuser.com/a/214336/51741
Shadok,

Risposte:


5

Che dire dell'utilizzo del file ~ / .ssh / config? Facile da usare, mantenere e condividere con gli altri. Se hai bisogno di condividerlo, un repository Git sarebbe perfetto.

Il file è simile al seguente:

Host somename
  User username
  HostName 192.168.1.X
  Port 2222

Man ssh_config per ulteriori opzioni.


Sto impostando il mio in questo modo e rimuovendo i miei alias.
Rob,

Ho usato anche gli alias ma è una vera seccatura. La configurazione SSH funziona alla grande. Sono pigro, quindi ho questo: "per X in $ SSH_HOSTS; fai alias $ X =" ssh $ X "fatto" nel mio file ~ / .zshrc in modo da poter semplicemente digitare i nomi host senza la parte "ssh" :)
ggustafsson,

Oops .. Ho dimenticato il codice più importante "[-f ~ / .ssh / config] && SSH_HOSTS = ($ (sed -ne 's / ^ Host // p' <~ / .ssh / config))" analizza ~ /.ssh/config file :)
ggustafsson

ggustafsson -Il file di configurazione SSH consente il completamento automatico di atab? IE digito "ssh my" {tab} e completa "ssh myhost"
Mike M

1

Ecco un po 'di codice dal mio file .zshrc. Completerà automaticamente gli host da / etc / hosts, un elenco che puoi gestire e quelli a cui ti sei già connesso (se hai HashKnownHosts noimpostato ' ' nella tua configurazione ssh). L'impostazione " HashKnownHosts no" potrebbe essere considerata un rischio per la sicurezza perché gli utenti che hanno già accesso al tuo $HOME/.ssh/known_hostsfile potrebbero vedere i sistemi a cui ti sei connesso prima. Questo è stato rubato dalle configurazioni grml.

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

Dopo aver aggiunto che tutto funziona come per magia.


0

Usa alcuni script personalizzati e gestiscili tramite Puppet o Git. Personalizzazione completa, facile da gestire tramite fantoccio o VCS. Soprattutto perché non stai tentando di patchare una soluzione esistente, ti consiglio vivamente di farlo su misura in modo da avere il pieno controllo su di esso.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.