Usare Interfacce grafiche per le connessioni con ssh, sftp e scp tra ambienti Windows, MacOSX, Linux, *BSD e Solaris

 

Il protocollo ssh e suoi derivati sftp e scp sono un'ottima risorsa per poter scambiare files in rete locale e/o remota tra computers, anche se essi hanno sistemi operativi diversi installati tra loro. In più e non è poco, la trasmissione avverrà in sicurezza, attraverso cifratura. Solo la trasmissione però, perchè il problema non indifferente di ssh è di essere spesso oggetto di attacchi brute force e tenere aperta con leggerezza la porta 22, data per default, è alquanto rischioso. Per ovviare al problema bisogna documentarsi e applicare parecchi trucchi e procedure ma resto del parere che se si usa ssh sporadicamente e non lo si usa su macchine che fungono da server (insomma uso desktop connessi momentaneamente fra loro) la cosa migliore è avviarlo solo al momento necessario e cercare di non farlo partire in automatico al boot del sistema.  
Quindi questo breve tutorial non vuole affrontare la complessità dell'uso di questi protocolli. Si presuppone che l'utente abbia già funzionante ssh e abbia familiarità con il suo uso da terminale. Gli esempi qui sotto riguardano connessioni in rete locale, con indirizzi IP locali. Per le altre connessioni è sufficiente che i parametri siano inseriti con le specifiche adeguate compreso l'uso dei DDNS. Una sola piccola parentesi per gli utenti Windows. Dato che il server ssh non è nella filosofia Win, c'è la questione di quale server ssh installare. Per evitare sbattimenti eccessivi consiglio l'installazione di WinSSHD, software free almeno nella versione per uso personale. L'installazione è abbastanza semplice e praticamente già operante con le scelte di default. Chiedete solo di installare il centro di controllo che vi permetterà di settare a dovere il server ed anche di fermarlo o avviarlo a piacimento.

Affrontiamo ora l'argomento specifico di vedere comodamente su interfacce grafiche e non da terminale i contenuti dei computers connessi anche se i sistemi operativi residenti sono diversi. Banalmente: come un utente MacOSX può fare una copia di files da una macchina Windows o viceversa usando ssh non da terminale?
Infatti è noto che ssh e derivati usano la riga di comando. E' cosa buona e giusta perchè utile, istruttiva ed anche esaltante. Però non a tutti è gradita specie in ambienti Windows e Mac  e, diciamolo francamente,  frequentemente anche in ambienti Linux . Se non si usa spesso l'applicativo di turno c'è sempre il rischio che, al momento opportuno, ci si dimentica qualche regola di sintassi dei comandi o quant'altro. Inoltre, nel caso delle connessioni ssh, non è particolarmente comodo navigare nelle directory sempre più vaste delle macchine. L'utente normale cercherà tendenzialmente sempre qualche interfaccia grafica facile da usare e che lo aiuti.
Base di partenza per affrontare razionalmente la questione è sapere con quale sistema operativo installato ci stiamo collegando. Non a caso la potenza della riga di comando da terminale è data dalla sua universalità, per cui la sintassi di connessione è indifferente rispetto a questa variabile. Tuttavia, tanto per fare un esempio banale, se ci connettiamo ad una macchina con Windows, entreremo con il terminale nel caro vecchio sistema simil-DOS, per cui bisognerà ricordarsi come si naviga o si listano i files nelle directory Win. Peggio ancora se un utente solo con esperienza Win ha necessità di connettersi su macchina Linux... all'apparire del prompt pippo@localhost rimarrà alquanto sconcertato ed è probabile che non sappia come proseguire.
Qui allora è raccomandato l'uso di comode interfacce che, sorpresa, rientrano proprio tra quelle usate quotidianamente o quasi dagli utenti nei propri abituali sistemi operativi. Noto che in giro nella rete sono spesso consigliati applicativi dedicati quando invece è possibile lanciare connessioni con ssh, sftp e scp senza ricorrere affatto a cose nuove. Ho personalmente provato gli applicativi in tutti gli intrecci di connessioni possibili, per cui quello che qui consiglio dovrebbe funzionare. Tutte le configurazioni per la connessione di queste interfacce sono facilmente comprensibili a che già usa ssh e derivati. Per gli altri, è meglio che prima prendano dimistichezza un pò con la riga di comando e troveranno poi facile inserire i parametri nelle interfacce grafiche.

A) applicativi  che probabilmente già usate sui vostri sistemi operativi:


1) Filezilla: non ha bisogno di presentazioni come FTP Transfer, è disponibile per tutti i sistemi operativi qui citati (multipiattaforma) ed anche un utente che non l'ha mai usato con un pò di pratica e d'intuito capisce di che si tratta. Per chi non l'avesse mai utilizzato dirò solo che è praticamente simile a tutti i file manager che ognuno usa normalmente. Solo che a sinistra si vedono le directory della macchina locale e a destra le directory della macchina a cui ci si è connessi. Per aprire una connessione in ssh/sftp basta cliccare sull'iconcina in alto a sinistra gestore siti scegliere nuovo sito e inserire i parametri che, per una connessione ssh, saranno per l'host l'indirizzo della macchina cui connettersi (l'IP), per il Tipo di server l'opzione SFTP-SSH e come Tipo d'accesso va bene l'opzione interattiva, avendo l'accortezza di cancellare "anonymus". In entrambi i casi verranno richiesti il nome utente (l'equivalente di un Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo. da terminale). Fatto. Cliccando su connetti vedrete apparire i contenuti della macchina a cui vi siete connessi e tutte le operazioni successive sono drag&drop.

Per Solaris (e derivate), poichè non è facile trovare Filezilla da installare come pacchetto, si è scelto il quasi analogo ed altrettanto buono gFTP. Si segnala che anche gFTP può essere provato sulle altre distro, soprattutto Unix, con l'accortezza di scegliere connessione SSH2 nel menu a tendina presente all'estrema destra in alto dello schermo.
 

2) Dolphin (oppure Konqueror) e Nautilus sono solo per utenti Linux, *BSD o Solaris. Si tratta dei due file manager rispettivamente di KDE e Gnome e sono di default installati nelle distro Linux e presenti nei *BSD oltrechè in Solaris e derivate. Dophin si connette in ssh usando il protocollo fish. E' sufficiente cliccare nel file manager per aprire la barra degli indirizzi e scrivere fish://nomeutente@indirizzoIP (es.:Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.) per avere accesso alla directory corrispondente sulla macchina remota. Se è settata una porta ssh diversa dalla 22 la riga da inserire sarà: fish://pippo@indirizzoIP:numeroporta. Le operazioni avverranno poi nel solito modo come si fa normalmente con i files sul proprio computer. Nautilus si connette aprendo dal Menu Vai--->posizione (alternativa tasto Ctrl-l ) ed usando il protocollo sftp con sftp://Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.:numeroporta (se diversa da 22).  Si segnala, infine, che in entrambi i file manager potete settare la connessione nell'apposita sezione Network o Rete ed averla sempre pronta ogni volta che servirà.

 

3) Firefox per tutti gli utenti. Infatti il browser Firefox può essre trasformato in un comodo manager grafico di connessioni FTP ed anche SFTP installando l'add-on FireFTP.  Se già usate Filezilla, l'ambiente vi sarà familiare. Comunque anche qui a sinistra la finestra con i contenuti della macchina locale e a destra, dopo la connessione, il contenuto della macchina remota. I trasferimenti avvengono in drag&drop. A sinistra la linguetta per creare un account. In Main Dopo aver inserito un nome per memoria, inserire l'IP della macchina remota nella casella Host mentre negli altri parametri siete liberi di scegliere o meno di immettere i parametri. Linguetta Connection e scegliere in Security  l'opzione  SFTP mentre il numero porta va immesso solo se diverso da 22. Private key serve per inserire le chiavi d'accesso eventualmente create e le caselle sottostanti indirizzano se volete a directory specifiche sulle due macchine. Attenzione che, per esperienza diretta, non in tutte le distro Linux questo add-on funziona (ad esempio non va sulla Mandriva, credo per dipendenze con putty).

 

B) applicativi specifici per ssh (sftp):

 

1) WinSCP  è solo per utenti Windows. Efficace, leggero e libero questo programma è semplice ed intuitivo anche perchè i menu sono in italiano. Solito inserimento dei parametri all'avvio (IP e nome utente) e questa volta il tipo di connessione da scegliere sarà SFTP, spuntando per sicurezza la vicina casella SCP fallback. Inserita l'eventuale password, a connessione avvenuta, apparirà la schermata con i contenuti del vostro computer nella finestra di sinistra ed in quella di destra vedrete invece i contenuti dell'altro computer. Successive operazioni come in tutti file manager in drag&drop, niente di più facile.

 

Nota: prima di usare il tutto apro una breve ma importante parentesi. Se per caso da una macchina Linux, MacOSX o *BSD trovate uno strano comportamento, per cui in ssh da terminale riuscite ad accedere alla macchina remota ma non ci riuscite in SFTP (sia da terminale che con queste interfacce) dovete provare a dare un'occhiata al file di configurazione sshd_config. Precisamente ad una delle ultime righe, quella con una riga analoga a questa : Subsystem  sftp /usr/libexec/openssh/sftp-server. Ebbene, controllate sul vostro sistema operativo e, nel caso di Linux sulla vostra distro, il percorso esatto dove si trova il file sftp-server. Spesso il PATH cambia e dovete ovviamente modificarlo esattamente per fargli trovare questo file. Ad esempio, su  Leopard MacOSX  e PC-BSD è in /usr/libexec/sftp-server mentre in Ubuntu/LinuxMint è in /usr/lib/openssh/sftp-server  mentre su ArchLinux in /usr/lib/ssh/sftp-server. Per una cosa così banale spesso ci si impazzisce a smanettare inutilmente su tutte le altre configurazioni....  Anche per Solaris (e derivate:OpenSolaris, OpenIndiana, ecc.) se il percorso presente di default non funziona, dovrete cambiarlo.  In OpenIndiana, ad esempio, è:  /usr/lib/ssh/sftp-server 

Questi gli strumenti, ora bisogna regolarsi a seconda del sistema operativo cui connettersi. Ecco uno schema riepilogativo: 

 

S.O. UTENTE S.O. MACCHINA REMOTA APPLICATIVO
 Windows                 Windows, Linux, *BSD, MacOSX, Solaris                 WinSCP, Filezilla, FireFTP
 Linux      Linux, *BSD, MacOSX, Windows, Solaris                 Dolphin, Nautilus, Filezilla, FireFTP
 *BSD   *BSD, Linux, Windows, MacOSX, Solaris                 Dolphin, Nautilus, Filezilla
 MacOSX   MacOSx, Windows, Linux, *BSD, Solaris                Filezilla, FireFTP
 Solaris  Solaris, Windows, Linux, *BSD, MacOSX                Nautilus, gFTP

 

Buone connessioni e trasferimenti! E leggete quest'articolo per la sicurezza con ssh oppure questo ed infine, se volete cose più sofisticate, quest'altro che parla pure del port knocking, piuttosto efficace.