Kennwort aus einer Datei abrufen, während per SSH auf eine Maschine zugegriffen wird

Kennwort aus einer Datei abrufen, während per SSH auf eine Maschine zugegriffen wird

Ich möchte per SSH auf einen Remotecomputer zugreifen, aber anstatt das Kennwort einzugeben, möchte ich es von einer anderen Datei umleiten.

Ich habe also eine Datei password.txt, in der das Kennwort gespeichert ist. File.shist meine Bash-Datei.

InFile.sh

#!/bin/bash
ssh -T [email protected]

Während ich die Datei ausführte, habe ich Folgendes getan:

./File.sh < password.txt

Ich wurde jedoch trotzdem aufgefordert, das Passwort einzugeben.

Wie erhalte ich das einzugebende Passwort aus der Datei?

Antwort1

SSH mit „Passwort in einer Datei“ wird häufig als Authentifizierung mit öffentlichem Schlüssel verwendet. Erstellen Sie ein Schlüsselpaar mit und ssh-keygenladen Sie den öffentlichen Schlüssel auf den anderen Host hoch:

scp ./.ssh/id_rsa.pub [email protected]:~/

und platzieren Sie es wie folgt ~/.ssh/authorized_keys:

ssh [email protected]
mkdir ~/.ssh
mv ~/id_rsa.pub ~/.ssh/authorized_keys

oder, wenn eine authorized_keysDatei bereits existiert:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

Stellen Sie die entsprechenden Berechtigungen ein (600 für die Datei, 700 für das Verzeichnis):

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

und starten Sie eine neue SSH-Sitzung.

Antwort2

Sie können sshpassdazu Folgendes verwenden:

sshpass -f password.txt ssh -T [email protected]

Antwort3

#!/usr/bin/expect -f
spawn ssh shw@hostname
expect -exact "shw@hostname's password: "
send -- "PASSWORD\r"
expect "$ "
interact

Expect ist ein Tool zur Automatisierung des Prozesses.

verwandte Informationen