ssh senza password per un altro nome utente?


14

Voglio fare una connessione ssh senza password per un progetto di sovversione. In questo momento sto usando ssh + svn, ed è un po 'fastidioso, perché devo digitare la password ogni volta che voglio effettuare transazioni con il server.

Ho trovato diversi tutorial sul web su come generare una chiave per ssh senza password, ma sembrano tutti supporre che sto usando lo stesso nome utente sul sistema remoto come lo sono per il mio sistema di casa. Tuttavia, il nome utente che utilizzo per ssh + svn è diverso dal nome dell'account utente sul sistema in esecuzione. Come lo configuro correttamente? Non ho avuto fortuna con il solo cambiare il nome nel file chiave.

Risposte:


15

Devi solo fornire il nome utente dell'altro sistema nel svncomando:

$ svn co svn+ssh://otheruser@othersystem/path/to/repo

Per rispondere anche al titolo della tua domanda:

$ ssh otheruser@othersystem

Questo fa sì che sshdsul computer remoto si cerchi ~otheruser/.ssh/authorized_keysla chiave pubblica corrispondente alla chiave privata sul computer su cui si sta digitando il comando.


1
Quindi parte delle istruzioni erano di creare un file .ssh/id_rsa.pube caricarlo sul server remoto. Quando l'ho realizzato, è finito con localusername @ localsystem. Questo dovrebbe essere cambiato in remoteusername @ remotesystem, giusto? Sia localmente che da remoto?
user394,

5
No. Solo aggiungere i contenuti del tuo locale, id_rsa.pubper authorized_keyssul sistema remoto. Funzionerà.
Warren Young,

1
alternativamente, molti sistemi hanno ssh-copy-id per risolvere questo problema: "ssh-copy-id -i ~ / .ssh / id_rsa.pub username @ remote-machine"
Matt Simmons

Sfortunatamente, molti non lo fanno e sembra che questa non sia una parte standard di OpenSSH, quindi ci sono almeno un paio di diverse implementazioni di questo script che fluttuano intorno.
Warren Young,

Se stai usando gnome cavalluccio marino, dispiega automaticamente le chiavi.
Maciej Piechotka,

9

Esistono due modi per farlo:

1) inserisci user @ nell'URL svn; questo dice a svn + ssh di accedere come quell'utente. Penso che sia una cattiva idea dal punto di vista della manutenzione perché cose come gli esterni che puntano su altre parti del repository non funzioneranno correttamente.

2) crea un ~ / .ssh / config (documentato come ssh_config ) che dice qualcosa del tipo:

Host othersystem
  User otheruser

in questo modo qualsiasi tentativo di inviare ssh ad altri sistemi verrà utilizzato per impostazione predefinita su altro utente. Che è utile per te quando fai ssh manualmente e quando stai usando svn.


5

Non devi avere lo stesso nome utente su entrambi i mashine. Finché si genera la chiave ( ssh-keygen), è necessario copiare la riga da ~/.ssh/id_rsa.pubo ~/.ssh/id_dsa.pub(a seconda del tipo di chiave) dal server locale e accodarla al ~/.ssh/authorized_keystelecomando.

% ssh-keygen
% cat ~/.ssh/id_*.pub | ssh remoteuser@remoteserver 'cat > .ssh/authorized_keys'

Se non vuoi digitare remoteuserogni volta aggiungi a ~/.ssh/config:

Host remoteserver
    User remoteuser

PS. Il nome della chiave può essere in forma di localuser@localhostma è solo un nome . Può essere altrettanto buono myfavouritekey@myfavouritecomputere a nessuno importa.


Il comando "cat" sopra è il nucleo dello ssh-copy-idscript comune ma non standard menzionato sopra. Lo riconosco perché non tutti i sistemi che uso vengono con ssh-copy-id, quindi ho digitato qualcosa del genere più di un paio di volte. :)
Warren Young,

Non ne ho mai sentito parlare ssh-copy-id. Di solito uso vimo seahorse;)
Maciej Piechotka,

0

Dopo aver creato .ssh / config ed eseguito:

cat ~/.ssh/id_*.pub | ssh remoteuser@remoteserver 'cat > .ssh/authorized_keys'

Ottengo l'errore:

Bad owner or permissions on /usr/share/eprints3/.ssh/config

poi aggiungo chmod 600 .ssh/config, e dopo, funziona senza intoppi.

enter code here

1
È meglio se lo aggiungi nel file authorized_keys, altrimenti rimuoverà anche le chiavi pub degli altri. Quindi meglio se modifichi la tua risposta con 'cat >> .ssh / authorized_keys'
Nitin Mahesh,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.