SSH è un vero toccasana quando devi gestire in remoto un computer, ma lo sapevi che puoi anche caricare e scaricare file? Utilizzando le chiavi SSH, puoi evitare di dover inserire le password e usarlo per gli script!
Questo processo funziona su Linux e Mac OS, a condizione che siano configurati correttamente per l'accesso SSH. Se utilizzi Windows, puoi farlo usa Cygwin per ottenere funzionalità simili a Linux e con un piccolo ritocco, Anche SSH verrà eseguito .
Copia di file su SSH
La copia protetta è un comando davvero utile ed è davvero facile da usare. Il formato di base del comando è il seguente:
scp [options] file_originale file_destinazione
Il più grande kicker è come formattare la parte remota. Quando si indirizza un file remoto, è necessario farlo nel modo seguente:
utente @ server: percorso / del / file
Il server può essere un URL o un indirizzo IP. Seguono i due punti, quindi il percorso del file o della cartella in questione. Diamo un'occhiata a un esempio.
scp –P 40050 Desktop / url.txt [email protected]: ~ / Desktop / url.txt
Questo comando presenta il flag [-P] (nota che è una P maiuscola). Ciò mi consente di specificare un numero di porta invece del valore predefinito 22. Questo è necessario per me a causa del modo in cui ho configurato il mio sistema.
Successivamente, il mio file originale è "url.txt" che si trova all'interno di una directory chiamata "Desktop". Il file di destinazione si trova in "~ / Desktop / url.txt" che è lo stesso di "/user/yatri/Desktop/url.txt". Questo comando viene eseguito dall'utente "yatri" sul computer remoto "192.168.1.50".
E se hai bisogno di fare il contrario? È possibile copiare i file da un server remoto in modo simile.
Qui, ho copiato un file dalla cartella "~ / Desktop /" del computer remoto alla cartella "Desktop" del mio computer.
Per copiare intere directory, dovrai utilizzare il flag [-r] (nota che è una r minuscola).
Puoi anche combinare le bandiere. Invece di
scp –P –r ...
Puoi solo farlo
SCP - Ma ...
La parte più difficile qui è che il completamento della scheda non funziona sempre, quindi è utile avere un altro terminale con una sessione SSH in esecuzione in modo da sapere dove mettere le cose.
SSH e SCP senza password
La copia protetta è fantastica. Puoi metterlo in script e fare in modo che esegua backup su computer remoti. Il problema è che potresti non essere sempre in giro per inserire la password. E, siamo onesti, è davvero un grande problema inserire la password in un computer remoto a cui ovviamente hai accesso tutto il tempo.
Bene, possiamo aggirare usando le password usando i file chiave. Possiamo fare in modo che il computer generi due file chiave, uno pubblico che appartiene al server remoto e uno privato che si trova sul tuo computer e deve essere protetto, e questi verranno utilizzati al posto di una password. Abbastanza comodo, vero?
Sul tuo computer, inserisci il seguente comando:
ssh-keygen –t rsa
Questo genererà le due chiavi e le inserirà in:
~ / .ssh /
con i nomi "id_rsa" per la tua chiave privata e "id_rsa.pub" per la tua chiave pubblica.
Dopo aver inserito il comando, ti verrà chiesto dove salvare la chiave. Puoi premere Invio per utilizzare i valori predefiniti sopra menzionati.
Successivamente, ti verrà chiesto di inserire una passphrase. Premi Invio per lasciare questo campo vuoto, quindi fallo di nuovo quando chiede conferma. Il passaggio successivo consiste nel copiare il file della chiave pubblica sul computer remoto. Puoi usare scp per fare questo:
La destinazione della tua chiave pubblica è sul server remoto, nel seguente file:
~ / .ssh / authorized_keys2
Le chiavi pubbliche successive possono essere aggiunte a questo file, in modo molto simile al file ~ / .ssh / known_hosts. Ciò significa che se si desidera aggiungere un'altra chiave pubblica per il proprio account su questo server, si copierà il contenuto del secondo file id_rsa.pub in una nuova riga del file autorizzato_keys2 esistente.
Considerazioni sulla sicurezza
Non è meno sicuro di una password?
In un senso pratico, non proprio. La chiave privata generata viene archiviata sul computer che stai utilizzando e non viene mai trasferita, nemmeno per essere verificata. Questa chiave privata corrisponde SOLO a quella chiave pubblica e la connessione deve essere avviata dal computer che ha la chiave privata. RSA è abbastanza sicuro e utilizza una lunghezza di 2048 bit per impostazione predefinita.
In realtà è abbastanza simile in teoria all'utilizzo della tua password. Se qualcuno conosce la tua password, la tua sicurezza va fuori dalla finestra. Se qualcuno ha il tuo file di chiave privata, la sicurezza viene persa per qualsiasi computer che abbia la chiave pubblica corrispondente, ma per ottenerla deve accedere al tuo computer.
Può essere più sicuro?
È possibile combinare una password con i file chiave. Segui i passaggi precedenti, ma inserisci una passphrase sicura. Ora, quando ti connetti tramite SSH o usi SCP, avrai bisogno del file della chiave privata appropriato così come la passphrase corretta.
Una volta inserita una volta la passphrase, non ti verrà più chiesta la password finché non chiudi la sessione. Ciò significa che la prima volta che esegui SSH / SCP, dovrai inserire la tua password, ma tutte le azioni successive non lo richiederanno. Dopo esserti disconnesso dal tuo computer (non quello remoto) o aver chiuso la finestra del terminale, dovrai accedervi di nuovo. In questo modo, non stai davvero sacrificando la sicurezza, ma non sei nemmeno molestato per le password tutto il tempo.
Posso riutilizzare la coppia di chiavi pubblica / privata?
Questa è davvero una pessima idea. Se qualcuno trova la tua password e usi la stessa password per tutti i tuoi account, ora ha accesso a tutti quegli account. Allo stesso modo, anche il file della tua chiave privata è super segreto e importante. (Per ulteriori informazioni, dai un'occhiata a Come recuperare dopo che la tua password e-mail è stata compromessa )
È meglio creare nuove coppie di chiavi per ogni computer e account che desideri collegare. In questo modo, se una delle tue chiavi private viene catturata in qualche modo, comprometterai solo un account su un computer remoto.
È anche molto importante notare che tutte le tue chiavi private sono archiviate nello stesso posto: in ~ / .ssh / sul tuo computer, puoi usa TrueCrypt per creare un contenitore sicuro e crittografato, quindi creare collegamenti simbolici nella tua directory ~ / .ssh /. A seconda di quello che sto facendo, lo uso super paranoico metodo super sicuro per mettere a mio agio la mente.
Hai usato SCP in qualche script? Utilizzi file chiave al posto delle password? Condividi la tua esperienza con altri lettori nei commenti!