it-swarm.it

Come forzare il client ssh a usare solo la password auth?

Se uso pubkey auth da es .: un Ubuntu 11.04 come posso impostare il client ssh per usare solo password auth su un server? (necessario solo a causa del test delle password su un server, in cui eseguo l'accesso predefinito con chiave)

Ho trovato un modo:

mv ~/.ssh/id_rsa ~/.ssh/id_rsa.backup
mv ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.backup

e ora mi viene richiesta la password, ma ci sono modi ufficiali?

414
LanceBaynes

Di recente ne ho avuto bisogno anche io, e ho pensato a questo:

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no example.com

È necessario assicurarsi che il client non sia configurato per non consentire l'autenticazione con password.

636
scoopr

Ho scoperto una scorciatoia per questo scopo:

ssh user:@example.com

Nota i due punti (:) e la password vuota dopo di essa.

174
Halil Özgür

Oltre al metodo pubblicato da scoopr, è possibile impostare le opzioni per Host nel file di configurazione del client ssh.

Nella tua .ssh directory, crea un file chiamato config (se non esiste già) e imposta le autorizzazioni su 600, puoi quindi creare sezioni che iniziano con

Host <some hostname or pattern>

e quindi impostare le opzioni per Host dopo, ad esempio,

Host bob.specific.foo
user fred

Host *.home.example
user billy
port 9191

così potresti avere

Host server.to.test
PubkeyAuthentication=no

in quel file e poi semplicemente

ssh server.to.test

e l'opzione verrà ritirata.

38
EightBitTony

Di recente ne avevo bisogno, ma nessuna delle opzioni sopra ha funzionato, ssh -v ha mostrato che le opzioni della riga di comando sono passate tramite -o switch sono stati sovraccaricati dai valori specificati nel mio ~/.ssh/config file.

Ciò che ha funzionato è stato questo:

ssh -F /dev/null <username>@<Host>

Dalla pagina man ssh:

 -F configfile
     Specifies an alternative per-user configuration file.  If a
     configuration file is given on the command line, the system-wide
     configuration file (/etc/ssh/ssh_config) will be ignored. The default 
     for the per-user configuration file is ~/.ssh/config.

Riconoscimenti per questa risposta: Come posso fare in modo che ssh ignori .ssh/config?

14
adeelx

Ho provato alcune di queste risposte, ma ssh -v continuava a mostrare che le mie chiavi pubbliche venivano estratte dalla mia directory home. Tuttavia, specificare un file di identità fasullo mi ha dato il trucco:

ssh -i /dev/null Host

Devo farlo in modo permanente (per aggirare il server SSH rotto in una PDU montata su rack APC - resta lontano lontano da queste cose se ti interessa la sicurezza - quindi ho finito per mettere l'opzione nel mio file di configurazione:

Host apc1 apc2
KexAlgorithms +diffie-hellman-group1-sha1
IdentityFile /dev/null
6
miken32

E assicurati anche che non esiste BatchMode=yes attivo in .ssh/config. Altrimenti non hai alcuna possibilità di ottenere una richiesta password interattiva.

2
Gunnar Tiedt

Potrei essere l'unico al mondo con questo problema, ma ho avuto un ssh da un altro sistema operativo in esecuzione (choco ssh in Windows in una shell Cygwin) visto tramite which ssh

Quindi la soluzione era

 /usr/bin/ssh [email protected]

Nota il percorso completo. L'ho fatto dopo aver eseguito cyg-get openssh

1
Jonathan

Le risposte di @scoopr e @Halil Özgür non hanno funzionato per me.

Questo ha funzionato per me:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]

Fonte: http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-Host-key-checking.html

1
shrx