GNU/Linux >> Linux Esercitazione >  >> Linux

Come connettere e condividere dati tra due sistemi Linux

Ho ricevuto una richiesta interessante (non da single della mia zona). Uno dei miei lettori mi ha chiesto, come si fa a collegare due box Linux - presumo per scopi di condivisione. Questo è un argomento che ho toccato spesso, ma spesso indirettamente. Come direbbe il comandante Lasard dell'Accademia di polizia, ci sono molti, molti, molti, molti modi diversi per farlo.

Quindi forse è il momento per un vero tutorial. Ti mostrerò diversi modi comuni e robusti per far comunicare due sistemi Linux in rete. Lo faremo sulla riga di comando, quindi passeremo ai file manager e, infine, eseguiremo anche un backup dei dati remoto utilizzando uno strumento GUI intuitivo. Iniziamo.

Riga di comando:SSH, SCP

Il modo "più semplice" per connettere due sistemi Linux è utilizzare il protocollo SSH. È comodo, sicuro e disponibile praticamente su qualsiasi sistema Linux. Ora, in alcuni casi [sic] remoti, potrebbero esserci problemi di interoperabilità dovuti a versioni incompatibili di software qua e là, ma nel complesso non dovresti avere problemi.

Un host funge da server (per impostazione predefinita, apre la porta TCP 22). L'altro funge da cliente. È possibile utilizzare l'utilità della riga di comando SSH per stabilire una connessione al server e persino eseguire comandi da lì, in remoto come in locale, comprese le attività amministrative (a condizione che si disponga delle autorizzazioni corrette). Oppure puoi utilizzare SCP, per copiare in modo sicuro i file dal client al server, o anche recuperare i file dai server al tuo host client.

Configurazione del server SSH

Dimostrerò con un server Fedora 32 e un client Kubuntu 18.04. Innanzitutto, è necessario installare e configurare il software di servizio SSH. Sebbene le istruzioni possano variare leggermente da distro a distro, in gran parte ciò che vedi qui è praticamente tutto ciò di cui hai bisogno. L'unica differenza notevole è il nome del pacchetto utilizzato per identificare il server SSH:in Fedora, viene fornito come openssh-server. Se cerchi un sshd esistente (ssh daemon =service), non otterrai nulla in realtà.

Nessuna corrispondenza per l'argomento:sshd
Errore:impossibile trovare una corrispondenza:sshd

sudo dnf search ssh
...
openssh-ldap.x86_64 :un supporto LDAP per il demone del server SSH open source
openssh-server.x86_64 :un demone del server SSH open source
openssh.x86_64:un'implementazione open source del protocollo SSH versione 2
...

Una volta che openssh-server è installato, puoi avviare il servizio. In genere, verrà eseguito all'avvio per impostazione predefinita, ma puoi sempre avviarlo o riavviarlo manualmente (tramite il comando o lo script del servizio di avvio), tuttavia, non verrà eseguito se non dispone di chiavi SSH (con cui l'host possono essere identificati in modo univoco).

sshd
sshd re-exec richiede l'esecuzione con un percorso assoluto

/usr/sbin/sshd
/etc/ssh/sshd_config:autorizzazione negata

sudo /usr/sbin/sshd
sshd:nessuna hostkey disponibile -- in uscita.

Dobbiamo generare le chiavi host:

sudo ssh-keygen -A
ssh-keygen:generazione di nuove chiavi host:RSA DSA ECDSA ED25519

E ora openssh-server verrà eseguito:

sudo /usr/sbin/sshd

ps -ef|grep ssh
roger 1832 1791 0 15:03 ? 00:00:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "/usr/bin/gnome-session"
root 3640 1675 0 15:17 ? 00:00:00 sshd:/usr/sbin/sshd [ascoltatore] 0 di 10-100 startup

Configurazione della rete

Ti mostrerò come collegare due scatole su una rete locale. Si applicano i termini e condizioni. Avrai bisogno che i due host siano raggiungibili (firewall et al). L'apertura di una porta di rete può avere implicazioni sulla sicurezza, meno sulla rete locale, ma di più sulle reti pubbliche, come Internetz. Tuttavia, non sono qui per discutere della sicurezza della tua roba, ma solo per mostrarti come collegare due scatole, nella tua configurazione LAN. Tuttavia, per i più curiosi, puoi rafforzare SSH, incluso l'accesso non root, l'utilizzo della porta non predefinito, la limitazione dell'accesso, varie altre restrizioni e quant'altro.

Ora, annota l'indirizzo IP o il nome host della tua macchina server Linux. Nelle distribuzioni "moderne", trovare l'indirizzo IP non è banale, perché netstat e ifconfig non sono più interessanti, ma si può fare. Ne avremo bisogno per la parte client della connettività.

Riga di comando:SSH, SCP (continua)

Sul client, connettiti al tuo server. La sintassi è la seguente:

ssh nomeutente@nomehost

Quindi, in pratica, nel mio esempio, questo è:nota l'avviso di connessione per la prima volta:

ssh [email protected]
Impossibile stabilire l'autenticità dell'host '192.168.2.107 (192.168.2.107)'.
L'impronta digitale della chiave ECDSA è SHA256:8Qk//cbC0v3BLuU1FQ/vjABNN34nw1sWANY+hoychHiE.
Sei ​​sicuro di voler continuare a connetterti (sì/no)? yes
Avviso:aggiunto in modo permanente '192.168.2.107' (ECDSA) all'elenco degli host conosciuti.
password di [email protected]:
Ultimo accesso:Thu Sep 17 15:03:38 2020

Ora sei "in" - ora puoi fare cose sul tuo server. Ma vogliamo anche essere in grado di copiare i dati avanti e indietro. Usiamo allora SCP. La sintassi è la seguente:

scp sorgente nomeutente@nomehost:destinazione

Il comando scp accetta anche vari argomenti utili:puoi ricorrere a cartelle, preservare i permessi, connetterti a una porta non predefinita e altro ancora. È interessante notare, forse ironicamente, ssh usa la p minuscola per specificare la porta (ad esempio:-p 2222), mentre scp usa la p maiuscola (ad esempio:-P 2223). Con scp, la p minuscola viene utilizzata per preservare le modalità e gli orari dei file originali. Ecco.

scp -r /home/igor/Wallpapers/ [email protected]:/home/roger/Pictures/ Password di
[email protected]:
wallhaven-156819.jpg 100% 166KB 500.8KB /s 00:00
wallhaven-448391.jpg 100% 1606KB 3.0MB/s 00:00
wallhaven-12679.jpg 100% 501KB 5.4MB/s 00:00
...

Nell'esempio sopra, copiamo ricorsivamente il contenuto della directory Wallpapers nella cartella Immagini sul nostro server. Puoi sempre invertire la direzione del flusso di dati (origine, destinazione).

Connettività SSH e SCP non presidiata

Come avrai notato sopra, nel mio esempio, mi è stata chiesta una password. Questo è utile per il lavoro interattivo, ma può essere ingombrante se si desidera eseguire backup non presidiati, come i lavori programmati durante la notte. A tal fine, dovrai configurare la coppia di chiavi pubblica-privata SSH. Il tutorial collegato lo spiega bene.

Riga di comando:rsync

I casi d'uso più ovvi per la connettività tra due host sono a scopo di backup dei dati. Ad esempio, si desidera copiare la directory home sulla workstation su un server di archivio. Quando si tratta di backup, rsync è uno strumento eccellente per il lavoro. Meglio ancora, hai già una guida del tuo autore significativo, che spiega come utilizzare rsync per configurare i backup dei dati.

Dobbiamo introdurre la componente SSH nell'equazione. Rsync supporta SSH senza problemi. In altre parole, tutto rimane lo stesso, tranne come si definisce la destinazione. La sintassi SSH/SCP in soccorso:

rsync sorgente nomeutente@nomehost:destinazione

Ad esempio:

rsync -avs --delete -i -h /home/igor/Wallpapers/ [email protected]:/home/roger/Pictures Password di
[email protected]:
invio dell'elenco di file incrementali
*eliminando Screenshot_20200516-125442.png
*eliminando Screenshot_20200516-125302.png
*eliminando Screenshot_20200516-125252.png
...
*eliminando QEMU Virgil.txt
*eliminando Fedora 32.txt
.d..tp..... ./

inviato 11.16M byte ricevuto 7.94K byte 2.03M byte/sec
la dimensione totale è 11.15M la velocità è 1.00

Ancora una volta, abbiamo bisogno di chiavi per una connettività senza interruzioni.

Connettività GUI:file manager Dolphin

Come ho detto, ci sono molti modi diversi per farlo. Dimostrerò con Dolphin, il file manager predefinito nel desktop Plasma. Supporta nativamente la connettività SSH, quindi puoi praticamente fare quello che abbiamo fatto in precedenza, tranne per il fatto che ora lo fai tramite la GUI anziché sulla riga di comando. Dedicherò un articolo separato ai dettagli più fini sull'utilizzo di Dolphin e SSH, quindi per ora ecco una versione abbreviata.

Dolphin utilizza il protocollo FISH per stabilire la connessione a host remoti. In Dolphin, premi Ctrl + L o fai doppio clic sulla riga della posizione per esporre la barra degli indirizzi, quindi scrivi:

fish://nomeutente@destinazione

Dolphin ora richiederà la password, che puoi salvare e il gioco è fatto. Sei connesso all'host remoto e puoi eseguire qualsiasi operazione sui file (all'interno delle autorizzazioni SSH che il tuo utente ha e che il server consente).

Backup della GUI:Grsync

Ne abbiamo parlato prima. Grsync è un'eccellente utility frontend rsync, la mia preferita. Puoi usarlo per definire una o più attività di replica dei dati, incluse varie opzioni ed esclusioni. Nella riga di destinazione, devi inserire la voce nomeutente@nomehost:destinazione, proprio come faresti con rsync in una finestra di terminale.

È quindi possibile simulare (a secco) l'operazione o connettersi in modo reale, con il bonus aggiuntivo che è possibile salvare le credenziali di connessione, in modo da poter eseguire nuovamente l'attività senza dover eseguire nuovamente l'autenticazione manuale. Perfetto per le attività di backup dei dati pianificate.

Conclusione

Bene, ecco qua. Ora hai quattro modi diversi per connettere le tue macchine Linux, inclusi i metodi della riga di comando e della GUI, l'autenticazione basata su password e senza password, i backup dei dati e altro ancora. Dietro le quinte, è tutto SSH, ma è proprio questo il bello.

Spero che questo articolo sia utile e pratico. Se vuoi assicurarti che i tuoi box Linux parlino senza problemi, hai gli strumenti per essere il capo di te stesso. Per chi ha familiarità con la riga di comando, ssh, scp e rsync fanno il lavoro, ma se sei più appassionato di semplici azioni punta e clicca del mouse, Dolphin e Grsync offrono le funzionalità necessarie. Ora, l'elenco non finisce qui. Puoi anche usare FTP, SFTP o un programma come wormhole, e alcuni altri file manager di Linux offrono anche funzionalità SSH e Rsync, ma questo è davvero un argomento per un altro articolo. E per oggi sarebbe tutto.


Linux
  1. Stabilire una connessione SSH tra Windows e Linux

  2. Come trasferire file tra due computer utilizzando i comandi nc e pv

  3. Linux:come passare dalla sessione Tty a quella Xorg?

  4. Linux:condividi file tra host Linux e guest Windows?

  5. Come connettere e inviare dati a una porta seriale Bluetooth su Linux?

Come mi collego a Linux VPS tramite SSH da Linux e Windows OS?

Come generare e utilizzare la chiave SSH nel sistema Linux?

Come aggiungere la chiave SSH al codice VS e connettersi a un host

Come configurare Synergy su Linux per condividere tastiera e mouse con più sistemi

Come condividere file tra Ubuntu e Windows 10?

Come installare, configurare e abilitare il servizio SSH in Linux