6Aug
SSH è un vero toccasana quando devi gestire da remoto un computer, ma lo sapevi che puoi anche caricare e scaricare file? Usando le chiavi SSH, puoi saltare di dover inserire le password e usarle per gli script!
Questo processo funziona su Linux e Mac OS, a condizione che siano configurati correttamente per l'accesso SSH.Se stai usando Windows, puoi usare Cygwin per ottenere funzionalità simili a Linux e, con un piccolo ritocco, anche SSH funzionerà.
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 [opzioni] original_file destination_file
Il più grande kicker è come formattare la parte remota. Quando si indirizza un file remoto, è necessario farlo nel modo seguente:
utente @ server: percorso /to/ file
Il server può essere un URL o un indirizzo IP.Questo è seguito da 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]( si noti che è una P maiuscola).Questo mi consente di specificare un numero di porta invece del valore predefinito 22. Ciò è 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 è 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".
Cosa fare se è necessario 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 nella cartella "Desktop" del mio computer.
Per copiare intere directory, devi usare il flag [-r]( nota che è una r minuscola).
È anche possibile combinare le bandiere. Invece di
scp -P -r. ..
Puoi semplicemente fare
scp -Pr. ..
La parte più difficile qui è che il completamento delle schede non sempre funziona, quindi è utile avere un altro terminale con una sessione SSH in esecuzione in modo che tu sappiadove mettere le cose.
SSH e SCP senza password
La copia protetta è eccezionale. Puoi metterlo negli script e farlo fare backup su computer remoti. Il problema è che potresti non essere sempre in giro per inserire la password. E, siamo onesti, è davvero una grande pena inserire la tua password su un computer remoto a cui hai ovviamente accesso in qualsiasi momento.
Bene, possiamo aggirare usando le password usando i file chiave. Possiamo far sì che il computer generi due file chiave: un pubblico che appartiene al server remoto e un privato che è sul tuo computer e deve essere protetto, e questi saranno usati al posto di una password. Piuttosto conveniente, giusto?
Sul computer, immettere il seguente comando:
ssh-keygen -t rsa
Questo genererà le due chiavi e le inserirà:
~ /.ssh/
con i nomi "id_rsa" per la propria chiave privata e "id_rsa.pub" perla 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 spazio vuoto, quindi fallo di nuovo quando chiede conferma. Il prossimo passo è copiare il file della chiave pubblica sul tuo computer remoto.È possibile utilizzare scp per eseguire questa operazione:
La destinazione della chiave pubblica si trova 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 ~ known_hosts /.ssh/.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 sul file authorized_keys2 esistente. Considerazioni sulla sicurezza
Non è meno sicuro di una password?
In senso pratico, non proprio. La chiave privata che viene generata viene archiviata sul computer che stai utilizzando e non viene mai trasferita, nemmeno da verificare. Questa chiave privata si adatta SOLO a quella chiave pubblica ONE e la connessione deve essere avviata dal computer con 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 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 su qualsiasi computer con la chiave pubblica corrispondente, ma è necessario che acceda al tuo computer per ottenerlo.
Può essere più sicuro?
È possibile combinare una password con i file chiave. Segui i passaggi precedenti, ma inserisci una passphrase forte. Ora, quando ci si connette su SSH o si utilizza SCP, è necessario il file della chiave privata appropriato e la passphrase corretta.
Una volta inserita la passphrase una volta, non ti verrà più richiesto finché non chiudi la sessione. Ciò significa che la prima volta che si esegue SSH / SCP, è necessario inserire la password, ma tutte le azioni successive non lo richiedono. Una volta usciti dal computer( non da quello remoto) o chiuso la finestra del terminale, sarà necessario inserirla di nuovo. In questo modo, non stai davvero sacrificando la sicurezza, ma non sei nemmeno molestato per le password in ogni momento.
Posso riutilizzare la coppia di chiavi pubblica / privata?
Questa è una pessima idea. Se qualcuno trova la tua password e usi la stessa password per tutti i tuoi account, ora hanno accesso a tutti questi account. Allo stesso modo, il tuo file di chiavi private è anche super-segreto e importante.(Per ulteriori informazioni, dare un'occhiata a Come recuperare dopo che la password della posta elettronica è compromessa)
È meglio creare nuove coppie di chiavi per ogni computer e account che si desidera collegare. In questo modo, se una delle tue chiavi private viene catturata in qualche modo, comprometterebbe un solo account su un solo computer remoto.
È anche molto importante notare che tutte le chiavi private sono memorizzate nella stessa posizione: in ~ /.ssh/ sul computer, è possibile utilizzare TrueCrypt per creare un contenitore crittografato sicuro, quindi creare collegamenti simbolici nella directory ~ /.ssh/.A seconda di quello che sto facendo, io uso questo super-paranoico metodo super-sicuro per mettere la mia mente a proprio agio.
Hai usato SCP in qualsiasi script? Usi i file chiave invece delle password? Condividi la tua esperienza con altri lettori nei commenti!