Come funziona SFTP senza una coppia di chiavi pubblica / privata generata manualmente

11

Sto imparando su SSH e su come usarlo per proteggere i trasferimenti di file e i comandi tra una macchina Windows e un server Linux. Tutto ciò che ho letto finora indica che ho bisogno di usare un client SFTP (come WinSCP) per connettermi al mio server e trasferire file. Gettin gin un po 'più a fondo, i documenti per WinSCP non mi dicono mai di impostare una coppia di chiavi pubblica o privata sul mio client e server. Ho pensato che le chiavi pubbliche e private fossero un elemento fondamentale di come funzionava SSH. In che modo SFTP (che ho letto si basa su SSH) è in grado di funzionare senza una coppia di chiavi pubblica e privata (o si trova in una modalità non sicura come FTP nella situazione?)

Inizialmente, pensavo di aver bisogno di creare queste coppie per ogni individuo che voleva connettersi al server e copiare manualmente il file della chiave pubblica sul computer client.

EDIT =============================

Non ho capito che ci sono due serie di chiavi pubbliche / private in uso, una creata dal server e una che potrebbe essere creata dal client. Inizialmente, pensavo che fossero la stessa coppia di chiavi pubblica / privata.

    
posta Hoytman 16.04.2014 - 16:17
fonte

3 risposte

13

Risposta breve: sul server esiste necessariamente una coppia di chiavi pubblica / privata. potrebbe essere una coppia di chiavi pubblica / privata sul client, ma il server potrebbe scegliere di autenticare i client con password,

SSH è un meccanismo di tunnel generico, in cui vengono trasferiti alcuni "dati dell'applicazione". Una di queste applicazioni è la "shell remota" che viene utilizzata per ottenere un "terminale" aperto su un server, nel quale possono essere eseguite le applicazioni del terminale. Un'altra applicazione distinta è il protocollo di trasferimento file noto come SFTP. Dal punto di vista SSH, quale applicazione viene utilizzata è irrilevante. Ciò significa che qualsiasi concetto di autenticazione si applica ugualmente a SSH (la parte "shell remota") e SFTP.

Il server DEVE avere una coppia di chiavi pubblica / privata. Quella chiave viene utilizzata per la parte tunnel, quindi un server utilizzerà la stessa coppia di chiavi per tutti i protocolli applicativi. La maggior parte dei sistemi operativi di tipo Unix (ad esempio Linux) crea una coppia di chiavi SSH quando viene installata per la prima volta e la userà in seguito. Ciò significa che non devi "creare una chiave" quando configuri il tuo server SSH da utilizzare anche come SFTP: il server ha già una chiave.

Un client può avere una coppia di chiavi pubblica / privata se desidera essere autenticato sulla base di quella chiave; questo è tutto su autenticazione client , cioè su come il server si assicurerà che stia parlando con il client giusto. L'autenticazione basata su password e l'autenticazione basata su chiave sono i due metodi più comuni (alcuni server sono configurati per richiedere entrambi ). Per definizione, solo l'autenticazione basata su chiave richiede che il client memorizzi e utilizzi una coppia di chiavi propria.

    
risposta data 16.04.2014 - 16:43
fonte
3

È in grado di funzionare perché la coppia di chiavi esiste già sul server. Il server SSH ha le chiavi necessarie per proteggere le informazioni in transito. Il server SSH utilizzerà una chiave pubblica, che il dispositivo client utilizza la chiave pubblica per crittografare le informazioni inviate al server. Il server quindi utilizza la propria chiave privata per decrittografare tali informazioni ed elaborarle.

Vedi link

    
risposta data 16.04.2014 - 16:35
fonte
3

In SSH, hai due serie di coppie di chiavi: una per il server e una per gli utenti.

La coppia di chiavi del server è obbligatoria ma in genere viene generata durante l'installazione del server: tutto ciò che devi fare è convalidare l'impronta digitale della chiave pubblica del server (un semplice hash) e, finché la chiave è invariata, il tuo cliente si connetterà silenziosamente.

La coppia di chiavi che usi per l'autenticazione, tuttavia, può essere facoltativa (o non consentita) a seconda del metodo di autenticazione che hai deciso di consentire o richiedere sul server.

L'articolo Wiki su SSH ha molti dettagli succosi ma, per riassumere, ci sono 4 meccanismi di autenticazione supportati:

  • Password richiede una combinazione di nome utente e password
  • Chiave pubblica richiede l'accesso alla parte privata della chiave pubblica che utilizzi per l'autenticazione (in genere, imposti la coppia di chiavi sul client e aggiorni semplicemente la configurazione del server con la tua chiave pubblica).
  • Tastiera interattiva viene principalmente utilizzato per password monouso e simili.
  • GSSAPI , un framework utilizzato per implementare altri schemi di autenticazione, in genere per implementare single sign-on (in particolare Kerberos )
risposta data 16.04.2014 - 16:45
fonte

Leggi altre domande sui tag