it-swarm.com.de

Wie kann man den SSH-Client zwingen, nur die Kennwortauthentifizierung zu verwenden?

Wenn ich die Pubkey-Authentifizierung von beispielsweise Ubuntu 11.04 verwende, wie kann ich den SSH-Client so einstellen, dass nur die Kennwortauthentifizierung für einen Server verwendet wird? (Wird nur benötigt, um Passwörter auf einem Server zu testen, auf dem ich mich standardmäßig mit dem Schlüssel anmelde.)

Ich habe einen Weg gefunden:

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

und jetzt werde ich zur Eingabe eines Passworts aufgefordert, aber gibt es offizielle Möglichkeiten?

414
LanceBaynes

Ich habe das kürzlich auch gebraucht und mir Folgendes ausgedacht:

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

Sie müssen sicherstellen, dass der Client nicht so konfiguriert ist, dass die Kennwortauthentifizierung nicht zulässig ist.

636
scoopr

Ich habe eine Verknüpfung für diesen Zweck entdeckt:

ssh user:@example.com

Beachten Sie den Doppelpunkt (:) und das leere Passwort danach.

174
Halil Özgür

Neben der von scoopr veröffentlichten Methode können Sie in Ihrer ssh-Client-Konfigurationsdatei Optionen für jeden Host festlegen.

In deinem .ssh Verzeichnis, erstellen Sie eine Datei mit dem Namen config (falls noch nicht vorhanden) und setzen Sie die Berechtigungen auf 600 können Sie dann Abschnitte erstellen, die mit beginnen

Host <some hostname or pattern>

und danach die Optionen pro Host festlegen, z.

Host bob.specific.foo
user fred

Host *.home.example
user billy
port 9191

so könntest du haben

Host server.to.test
PubkeyAuthentication=no

in dieser Datei und dann einfach

ssh server.to.test

und die Option wird abgeholt.

38
EightBitTony

Ich brauchte dies kürzlich, aber keine der oben genannten Optionen funktionierte. ssh -v Zeigte, dass die über den Schalter -o Übergebenen Befehlszeilenoptionen durch die in meinem ~/.ssh/config Datei.

Was funktionierte war folgendes:

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

Von der Manpage 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.

Dank an diese Antwort: Wie kann ich ssh dazu bringen, .ssh/config zu ignorieren?

14
adeelx

Ich habe einige dieser Antworten ausprobiert, aber ssh -v zeigte immer wieder, dass meine öffentlichen Schlüssel aus meinem Home-Verzeichnis gezogen wurden. Die Angabe einer gefälschten Identitätsdatei hat mir jedoch geholfen:

ssh -i /dev/null Host

Ich muss dies permanent tun (um den defekten SSH-Server in einer APC-Rack-PDU zu umgehen - bleiben Sie weit von diesen Dingen entfernt, wenn Sie sich um die Sicherheit kümmern - also habe ich die Option in meine integriert Konfigurationsdatei:

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

Und sei dir auch sicher, es gibt kein BatchMode=yes aktiv in .ssh/config. Andernfalls haben Sie keine Chance, eine interaktive Passwortabfrage zu erhalten.

2
Gunnar Tiedt

Ich bin vielleicht der einzige auf der Welt mit diesem Problem, aber ich hatte ein ssh von einem anderen Betriebssystem (choco ssh in Windows in einer Cygwin-Shell), das über which ssh Gesehen wurde.

Die Lösung war also zu

 /usr/bin/ssh [email protected]

Beachten Sie den vollständigen Pfad. Ich habe dies getan, nachdem ich cyg-get openssh Ausgeführt hatte.

1
Jonathan

Die Antworten von @scoopr und @Halil Özgür haben bei mir nicht funktioniert.

Das hat bei mir funktioniert:

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

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

1
shrx