GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Passwort zu .ssh/config hinzufügen

Lösung 1:

Nein, es gibt keine Methode zum Angeben oder Bereitstellen des Kennworts in der Befehlszeile auf nicht interaktive Weise für die SSH-Authentifizierung mithilfe eines integrierten Openssh-Mechanismus. Zumindest keine, die ich kenne. Sie könnten Ihr Passwort fest in das erwartete Skript codieren, aber das ist auch keine gute Lösung.

Sie würden auf jeden Fall Schlüsselpaare für die passwortlose Authentifizierung verwenden wollen, wie Michael sagte, am Ende ist der private Schlüssel so ziemlich ein großes Passwort in der Datei.

Lösung 2:

Um die Reihe von Kommentaren zu vermeiden:Ja, das ist unsicher (nicht einmal wohl unsicher). Ich würde Ihnen dringend empfehlen, dies nur in einer Laborsituation in einem isolierten Netzwerk oder einer ähnlichen Situation zu tun, die keine Produktionsserver oder möglicherweise Produktionsserver ohne vollständiges Zurücksetzen/Formatieren umfasst.

Ich wollte dies einrichten, da ich nicht glaube, dass mein 2950-Switch private/öffentliche Schlüssel unterstützt, und ich hoffe, dieses Wissen irgendwann zu erlangen, aber ich bin noch nicht so weit.

Mit einem Alias ​​und sshpass kann dies erreicht werden.

  1. Installieren Sie sshpass
  2. Ändern Sie Ihre .ssh/config Datei, um den in der Frage aufgeführten Benutzernamen aufzunehmen
  3. Fügen Sie Ihrem Terminal einen Alias ​​hinzu (ich habe .bashrc verwendet und würde gegen globale Einstellungen empfehlen)
  4. Alias ​​verwenden, um sich beim Ziel anzumelden

Mein Beispiel-Alias ​​lautet:

alias ssc='sshpass -pcisco ssh'

Wobei „cisco“ das Passwort ist. Beachten Sie, dass zwischen dem -p und dem Passwort kein Leerzeichen steht.

Verwendung ist (bezieht sich auf die Frage):

ssc server1

Hinweis:Dies beantwortet die Frage im Titel nur für diejenigen, die Suchmaschinen verwenden. Wenn Sie Server wie im Fragebeispiel verwenden, sollten private/öffentliche Schlüsselpaare und nicht diese Antwort verwendet werden

Lösung 3:

Ja, wie oben erwähnt gibt es keine Möglichkeit das Passwort einfach zu speichern. Ich würde empfehlen, den SSH-Schlüssel für die Autorisierung zu verwenden.

generieren Sie zuerst Ihren Schlüssel :

ssh-keygen

Kopieren Sie dann den Schlüssel auf Ihren Servern/Desktops:

ssh-copy-id -i .ssh/id_rsa.pub [email protected]:

Das ist alles. Sie werden nie wieder nach dem Passwort gefragt.

Ich empfehle auch, die Passwortautorisierung im Allgemeinen zu entfernen, aber das liegt an Ihnen.

Lösung 4:

Es gibt keine Möglichkeit, dies mit ssh zu tun, es ist so unsicher, wie es nur sein kann.

Wie Danila erwähnte, könnten Sie Expect-Skripte verwenden, aber ich würde mich nicht darum kümmern.

Ich frage mich, was versuchst du zu erreichen? Möchten Sie von einem Server zum anderen springen? In diesem Fall möchten Sie ssh-agent auf Ihrer Workstation einrichten und verwenden und die Agentenweiterleitung auf den Zielhosts aktivieren. Auf diese Weise wird der Anmeldedatenaustausch an Ihren lokalen Agenten weitergeleitet, ohne dass Sie Ihren privaten Schlüssel kopieren müssen.

Lösung 5:

Ich verwende dieses Skript von ~/.local/bin Verzeichnis

#!/usr/bin/bash

ORIG_SSH=/usr/bin/ssh
HOST=$1

SSHPASS=$(grep -Pzo "Host $HOST"'\s*\n((?!Host).*\n)*#PS\s(\N+)\n' ~/.ssh/config|tail -n 2|head -n 1 | sed 's/#PS //')
if [ -n $SSHPASS ]; then
    export SSHPASS
    sshpass -e $ORIG_SSH [email protected]
else
    $ORIG_SSH [email protected]
fi

Dadurch kann ich die Passphrase als #PS <password> angeben in .ssh/config Datei.

Aber wie jeder sagt, ist es besser, ssh-keys zu verwenden mit ssh-agent wenn es möglich ist


Linux
  1. So richten Sie die SSH-Anmeldung ohne Passwort ein

  2. Rsync mit SSH-Aufforderung zur Eingabe des Remote-Passworts

  3. Betrieb von zwei SSH-Servern

  4. SSH - So fügen Sie den Befehl -t in die Datei ~/.ssh/config ein

  5. Wie kann ich feststellen, ob ich über SSH angemeldet bin?

SSH-Passworttest mit Hydra unter Kali Linux

So deaktivieren Sie die SSH-Passwortauthentifizierung auf Linux VPS

Verwenden der SSH-Konfigurationsdatei

So übergeben Sie das Passwort an den SSH-Befehl in Linux

sshpass-Befehl:Nicht interaktive Kennwortauthentifizierung mit SSH

SSH fragt nicht nach dem Passwort, erteilt die Erlaubnis sofort verweigert