Ciao a tutti, per lavoro utilizzo ssh e vorrei farmi uno script a cui passo come parametro il nome dell'host a cui connettermi e lui mi apre la connessione. Tutto questo vorrei realizzarlo tramite un file XML in cui inserire i dati delle varie connessioni.

Sapete aiutarmi su come gestire il file XML? Cioè leggere i tag e prendere il valore contenuto in esso per poi metterlo in una variabile, aggiungere nuovi tag per creare nuove connessioni ecc.. esiste qualche parser?

Grazie.

chiesto 12 Feb '15, 17:52

raf-jbit's gravatar image

raf-jbit
456610

modificato 12 Feb '15, 20:33

enzotib's gravatar image

enzotib ♦♦
14.1k113187


Non c'è bisogno di reinventare la ruota. Il file ~/.ssh/config serve proprio a impostare dei valori base associati ad un nome, senza dover ogni volta scrivere tutto. Per esempio, il comando

ssh -p 2222 -i ~/.ssh/mykey.rsa.key myuser@myserver.mydomain.com

può essere abbreviato a

ssh myname

se nel file di cui sopra inseriamo un stanza come la seguente:

Host myname
Port 2222
IdentityFile ~/.ssh/mykey.rsa.key
User myuser
Hostname myserver.mydomain.com

Nel file si possono inserire più stanze di questo tipo, anche solo con le informazioni che servono, per esempio

Host myname2
Port 10022
Hostname myserver2.mydomain.com

e impostare valori validi per ogni connessione, come per esempio

Host *
ServerAliveInterval 60

Per maggiori informazioni, la pagina di manuale di ssh_config(5).

coll. permanente

ha risposto 12 Feb '15, 19:18

enzotib's gravatar image

enzotib ♦♦
14.1k113187

Bene bene... Domani provo. Sarebbe stata un'occasione per esercitarmi un po con gli script ma va bene così. In ogni caso per il futuro c'è un parser per utilizzare file xml?

(12 Feb '15, 20:47) raf-jbit raf-jbit's gravatar image

@raf-jbit: un paio di programmi utili sono expat e xmlstarlet.

(12 Feb '15, 21:19) enzotib ♦♦ enzotib's gravatar image

ho provato ed ovviamente funziona :-)... Ultima cosa, nel file di configurazione c'è il modo per far stampare qualcosa? per intenderci voglio far stampare la password dato che avendo molti server a cui accedere non le ricordo tutte.

(13 Feb '15, 11:46) raf-jbit raf-jbit's gravatar image

@raf-jbit: non credo che si possa fare, ne che sia consigliabile.
Potresti invece crearti una coppia di chiavi (pubblica e privata), copiare quella pubblica sui vari server, in modo che sarà sufficiente inserire la passphrase della chiave una sola volta all'inizio della sessione grafica, dopodiché potrai connetterti a tutti i server senza inserire la password.
La procedura per impostare questa cosa la trovi su OpenSSH > Aumentare la sicurezza.

(13 Feb '15, 12:35) enzotib ♦♦ enzotib's gravatar image

@raf-jbit: per intanto, se il problema della domanda è risolto, dovresti considerare di accettare la risposta, in modo che altri utenti con lo stesso problema possano subito individuare la soluzione.

(13 Feb '15, 12:37) enzotib ♦♦ enzotib's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×52
×17
×2

domanda posta: 12 Feb '15, 17:52

domanda visualizzata: 2,283 volte

ultimo aggiornamento: 13 Feb '15, 12:37

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.