GNU/Linux >> Linux Esercitazione >  >> Linux

Introduzione a SSH in Linux

Grazie al mondo connesso in cui viviamo, non è più necessario avere accesso fisico al tuo server. Il tuo server può essere ovunque nel mondo e puoi connetterti ad esso dal tuo computer locale.

Ci sono molti protocolli e strumenti che sono sviluppati per questo scopo. Questi includono telnet e ssh . Telnet non è preferito a causa di problemi di sicurezza. D'altra parte, ssh è il mezzo popolare per connettersi in sicurezza a sistemi remoti.

In questo articolo tratterò alcuni comandi e strumenti utili che un utente Linux deve conoscere per utilizzare un sistema remoto e le sue risorse su ssh.

Nota che la maggior parte dei comandi che esegui sul tuo sistema Linux locale personale dovrebbero essere disponibili anche sul sistema remoto (come ls, cat, cd command ecc.). Ma eseguirli dipende dai permessi assegnati a un utente remoto come con qualsiasi sistema Linux/UNIX.

Cos'è SSH?

Il ssh o Secure Shell è un protocollo di rete per il funzionamento sicuro dei servizi di rete su una rete. Utilizza standard di crittografia per connettersi e accedere in modo sicuro al sistema remoto.

Memorizza una chiave pubblica nel sistema remoto e una chiave privata nel sistema client. Queste chiavi sono prodotte matematicamente in coppia. Quando entrambi vengono applicati a una funzione bi-variabile, risulterà in un valore che verrà utilizzato per verificare se la coppia è valida o non valida. Questa è la spiegazione più semplice possibile. Per saperne di più, fai riferimento a questa pagina.

Esempi di utilizzo di SSH

Iniziamo con la configurazione di ssh e casi d'uso davvero fantastici.

Genera chiave ssh

Siti web come GitHub e Heroku richiedono il tuo ssh chiave pubblica in modo da poter inviare/distribuire il codice senza inserire una password e non si dispone di una tale coppia di chiavi? Non preoccuparti. Puoi generare tale coppia di chiavi ssh con questo comando:

ssh-keygen

Richiederà una posizione della chiave (dove verrà salvata la chiave) e una passphrase (cioè la password). La passphrase è facoltativa.

Per impostazione predefinita, le chiavi ssh sono archiviate nella directory .ssh nella directory home.

Se la posizione della chiave è DIR_PATH/keypairforssh , ci saranno due file

  1. DIR_PATH/keypairforssh
  2. DIR_PATH/keypairforssh.pub

1 è il file della chiave privata che non devi condividere con nessuno
2 è il file della chiave pubblica che può essere condiviso con sistemi remoti (tramite altre comunicazioni affidabili come posta, trasferimento fisico e altri strumenti di comunicazione protetta) e servizi come Github, Heroku per i rispettivi casi d'uso. Assicurati di controllare attentamente il servizio a cui ti stai connettendo.

Aggiungi chiave privata al key-agent

Quando viene creata la coppia di chiavi, esiste solo come un insieme di due file. Per connettersi al sistema remoto, deve utilizzare la chiave privata. Quindi si dovrebbe informare che questo DIR_PATH/keypairforssh è la chiave privata.

Questo viene fatto da

ssh-add keylocation

Nel nostro caso lo è

ssh-add DIR_PATH/keypairforssh

Connetti all'host remoto tramite SSH

Se la chiave privata e la chiave pubblica si trovano nei posti giusti, puoi connetterti al sistema in questo modo.

ssh [username]@hostname

Dove il nome utente deve essere un utente valido sul sistema remoto e il nome host è riconoscibile dal DNS o un indirizzo IP in modo che ssh possa contattare il sistema remoto e richiedere la connessione.

Ad esempio, per connettersi al sistema denominato “linuxhandbook ” con il nome utente “seeni ” , usa:

ssh [email protected] 

Come spiegato in precedenza, il comando precedente utilizza la chiave privata sul sistema locale e la chiave pubblica sul sistema remoto e verifica che queste siano coppie valide. Consente il login se e solo se la coppia di chiavi è valida e genera una shell (il tipo dipende dalla configurazione per l'utente sul sistema remoto) per il tuo uso. Puoi usare il sistema remoto come stai usando il sistema locale.

Supponiamo che la chiave privata non sia stata aggiunta all'agente chiave, quindi puoi eseguire l'accesso ssh come di seguito.

ssh -i /path/to/private/key/file [email protected]

Questo controllo delle coppie di chiavi viene solitamente eseguito una volta. Ssh aggiunge l'host remoto all'elenco degli host autorizzati per un utilizzo futuro.

Copia di file tra client e sistemi remoti

Il comando scp è uno strumento costruito sulla parte superiore di ssh. Consente agli utenti di copiare file e directory da remoto a client e viceversa.

Poiché il comando scp usa ssh, necessita degli stessi requisiti di ssh. Significa che la chiave pubblica dovrebbe essere sul sistema remoto e la chiave privata dovrebbe essere sul sistema locale.

scp DIR_PATH_1 DIR_PATH_2

Dove DIR_PATH_1/DIR_PATH_2 sono entrambi percorsi che sono percorsi di filesystem remoti o locali. Ad esempio, per trasferire ~/Documents/documentForLinux.txt a 'linuxHandbook 's /home/seeni/Documents directory

scp ~/Documents/documentForLinux.txt [email protected]:~/Documents

Per copiare lo stesso file in direzione inversa,

scp  [email protected]:~/Documents/documentForLinux.txt ~/Documents

Montaggio di filesystem o directory remoti

Per montare le directory di sistema remote sul client, sshfs è lo strumento
sviluppato per questo scopo specifico.

sshfs [email protected]:/path/to/remote/folder /path/to/local/mount/point

Il comando sopra è totalmente intuitivo. Qui, "nome" è il nome utente accettato sul sistema remoto e il server è il "nome host" remoto.

In alcuni sistemi, sshfs potrebbe non essere disponibile, installalo se ne hai bisogno.

Suggerimento:il comando nohup ti consente di continuare a eseguire comandi anche dopo aver disconnesso la connessione SSH.

Conclusione

Congratulazioni, sei arrivato alla fine. Spero che questo articolo abbia trattato tutti i comandi e gli strumenti di base relativi a ssh. Questi strumenti sono appena sufficienti per iniziare con l'elaborazione remota con ssh.

In un articolo correlato, puoi conoscere tmate. È uno strumento che ti consente di condividere la sessione del terminale su SSH.

Spero che trovi questo articolo utile. Se hai suggerimenti, sentiti libero di lasciarli nella sezione commenti qui sotto.


Linux
  1. Introduzione ai firewall Linux

  2. Iniziare con il comando tac di Linux

  3. Iniziare con PiFlash:avviare il tuo Raspberry Pi su Linux

  4. Iniziare con il comando cat di Linux

  5. Iniziare con PostgreSQL su Linux

Iniziare con GIT su Linux

Introduzione al sistema operativo Linux

Tutorial Vagrant – Introduzione a Vagrant in Linux

Introduzione a Docker Compose in Linux

Introduzione a VirtualBox in Linux – Parte 1

Introduzione a Flutter su desktop Linux