Domanda

Non riesco a capire come creare chiavi pubbliche / private per altri utenti sul mio server. Sul mio server, digito il seguente attraverso il guscio

(uiserver): john:> ssh-keygen -t dsa

Dopo di che, io entro i nomi di file e la password, che si traduce con successo in una chiave privata e coppia di chiavi pubblica per "john". Ora, quando uso questo tasto per ssh nel mio repository subversion (seduto su John), tutte le azioni vengono registrati come "John". Che è perfetto.

Quindi, la prossima, voglio creare una coppia di chiavi pubblica / privata per "George", così da poter accedere al mio server. Ho ripetuto l'ssh-keygen dal mio server. Poi ho dato la chiave privata a George. George installato correttamente la chiave, ma ogni volta che esegue un'azione nel repository svn, Subversion registra le sue azioni come "John" al posto di "George". Come faccio ad avere la sovversione a riconoscere la differenza tra "Giorgio" e "John"?

Ho guardato in authorized_keys2 e ho notato che il commento finale per entrambi i tasti è "john @ uiserver". Ho provato a modificare il commento, ma la sovversione ancora non riesco a riconoscere la differenza tra George e John.

ulteriori dettagli

Ho una soluzione mezza di lavoro basato sulla risposta di Juliano. Sono andato a "david" macchina (linux), ha fatto i tasti PRV / pub, chiave pub annesso authorized_keys2 di john. Perfetto! SVN sta registrando i cambiamenti di David come david.

Sono andato a "George" macchina (Windows XP), utilizzato per creare PuTTYgen chiavi PRV / pub, attaccato chiave pub per authorized_keys2 di john. George può accedere svn, ma tutti i suoi cambiamenti sono ancora registrati come John. Sto cercando la soluzione del tunnel di Bojo appena ho capire dove configurarlo in TortoiseSVN.

RISPOSTA

Ho usato l'opzione 2 della risposta di Bojo. Alla fine, tutto quello che dovevo fare era aggiungere la seguente riga alla mia authorized_keys2

command="svnserve -t --tunnel-user=george",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-dss <george's long public key> == meaningful comment

Ho anche aggiunto la riga

george=george's password

al mio / pathtorepository / conf / passwd al mio file delle password sovversione

È stato utile?

Soluzione

Controlla le istruzioni su come utilizzare il comando --tunnel-utente qui al manuale svn . Immagino che la ragione George sta rivelando come John è perché non stai dicendo la sessione ssh quale utente è, quindi è inadempiente sul conto di Giovanni.

Per chiarire, il manifesto originale ha due opzioni.

  1. Crea un nuovo account utente per George. Ciò presuppone ha accesso super user.
  2. Genera il secondo tasto (idealmente George fa questo), aggiungere al file di .ssh / authorized_keys dell'account John, e aggiungere i comandi precedenti legati al file .ssh / authorized_users come descritto. Il collegamento descrive inoltre come limitare l'accesso dell'utente aggiuntiva sul conto John.

Altri suggerimenti

  

Poi ho dato la chiave privata a George.

Le chiavi private sono chiamati privato per un motivo. Essi non sono mai destinati ad essere trasferiti in questo modo. George deve creare una propria coppia di chiavi, nel suo ambiente utente. Ma questo non è correlato al problema riscontrato. Le chiavi sono i fattori primi di un solo numero molto grande (semplificato per una facile comprensione). l'identità dell'utente non è parte della chiave, ma una "etichetta" che è collegato alla chiave, che SSH non fa un sacco di utilizzo.

Dalla tua descrizione, si sta chiedendo George per accedere al conto di Giovanni tramite SSH. Che cosa determina l'utente che ha effettuato l'accesso nelle azioni SVN non è correlato alla coppia di chiavi utilizzato per l'autenticazione in qualsiasi modo, ma per l'utente che viene effettivamente registrato a.

Quindi, George deve hanno proprio conto login al server SVN, il repository deve essere condivisa da entrambi gli account, e George deve usare le sue stesse credenziali per accedere al server.

Giovanni URL: svn + ssh: // john @ svn server / path / to / repository

Giorgio URL: svn + ssh: // george @ svn server / path / to / repository

È relative a questo domanda SO , indicando la voce del blog svn tramite ssh richiede per il male nome utente

La soluzione c'era da creare un file di configurazione nella directory .ssh george e mettendo quanto segue in:

Host uiserver
User george

È possibile dare una prova utilizzando:

ssh-keygen -C "george"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top