Detaillierte Erklärung, wie man ein Passwort an den SSH/SCP-Befehl im Bash-Skript übergibt

Detaillierte Erklärung, wie man ein Passwort an den SSH/SCP-Befehl im Bash-Skript übergibt

Installieren Sie SSHPASS

Für die meisten aktuellen Betriebssysteme ist das SSHPASS-Paket in den Standardpaket-Repositorys verfügbar. Es kann mit dem folgenden Befehl auf Ihrem System installiert werden.

Unter Debian:

$ sudo apt installiere sshpass

Unter CentOS:

$ yum --enablerepo=epel -y installiere sshpass

Verwenden von SSHPASS

sshspass verwendet die Umgebungsvariable sshspass, um das Benutzerkennwort zu speichern. Sie müssen zuerst die Variable und das Kennwort „sshspass“ und dann diesen Befehl verwenden. Unten finden Sie ein einfaches Shell-Skript mit sshspass.

exportiere SSHPASS=ry3AvbWO0oupYX9HCMzp0Axx

sshpass -e scp testfile.csv [email protected]:/uploads/

Sie können SSH-Befehle auch mit sshpass ausführen, wie unten gezeigt

sshpass -e ssh [email protected]

Lösen Sie das Problem des SCP-Befehls, der ein Passwort im Shell-Skript erfordert

Verwenden Sie eine Schlüsseldatei.

Hier wird angenommen, dass Host A (192.168.100.3) verwendet wird, um die Datei von Host B (192.168.100.4) zu erhalten.

Führen Sie den folgenden Befehl auf Host A aus, um einen Pairing-Schlüssel zu generieren:

ssh-keygen -t rsa

Drücken Sie die Eingabetaste, wenn Sie dazu aufgefordert werden. Der öffentliche Schlüssel wird im Verzeichnis .ssh unter dem Benutzerverzeichnis gespeichert. Beispielsweise ist root hier gespeichert:

/root/.ssh/id_rsa.pub

Kopieren Sie die Datei id_rsa.pub im Verzeichnis .ssh in das Verzeichnis ~/.ssh/ von Host B und benennen Sie sie in authorized_keys um.

Führen Sie Befehle auf Host A aus, um beispielsweise eine Vertrauensbeziehung zu Host B herzustellen (vorausgesetzt, die IP von Host B lautet: 192.168.100.4):

scp ~/.ssh/id_rsa.pub 192.168.100.4:/root/.ssh/authorized_keys

Als Nächstes können Sie die Befehle scp und ssh verwenden, um Dateien ohne Kennwort von Host B abzurufen. ssh 192.168.100.4 Drücken Sie die Eingabetaste. Es ist kein Kennwort erforderlich.

Hinweis: Fügen Sie tatsächlich einfach den Inhalt von id_rsa.pub zu den autorisierten Schlüsseln der anderen Maschine hinzu.

Das könnte Sie auch interessieren:
  • Vue-CLI 3 scp2 Automatische Bereitstellung von Projekten auf dem Server-Verfahren
  • Python ruft scp auf, um Dateien auf das Serverbeispiel hochzuladen
  • So verwenden Sie SSH und SCP über geheime Schlüssel in Windows
  • Python führt den Befehl scp aus, um Dateien und Ordner in das Verzeichnis des Remote-Hosts zu kopieren
  • Linux verwendet den Befehl scp, um Dateien auf den lokalen Computer zu kopieren und lokale Dateien auf den Remote-Server zu kopieren
  • Python Pexpect implementiert die Methode des SCP-Kopierens mit Passworteingabe
  • Detaillierte Erklärung zur Verwendung des scp-Befehls zum Remote-Kopieren von Dateien unter Linux
  • scp kopiert Daten von einem Linux-Server auf einen anderen Linux-Server
  • So implementieren Sie den SCP-Vorgang in Android

<<:  MySQL-Batch entfernt Leerzeichen in einem bestimmten Feld

>>:  Eine kurze Diskussion über die Effizienz der MySQL-Unterabfrage-Vereinigung und in

Artikel empfehlen

Natives JS zur Implementierung der Paging-Klicksteuerung

Dies ist eine Interviewfrage, die die Verwendung ...

CentOS 7 erstellt Hadoop 2.10 mit hoher Verfügbarkeit (HA)

Dieser Artikel beschreibt, wie man einen hochverf...

So begrenzen Sie den Wertebereich von Objektschlüsseln in TypeScript

Wenn wir TypeScript verwenden, möchten wir das vo...

Problem mit Zeitzonenfehler im Docker-Container

Inhaltsverzeichnis Hintergrund Frage Problemanaly...

MySQL implementiert den Vorgang zum Festlegen mehrerer Primärschlüssel

Benutzertabelle, ID-Nummer muss eindeutig sein, M...

MySQL 4-Methoden zum Importieren von Daten

1. MySQL-Befehl importieren Die Importsyntax des ...

So erstellen Sie WeChat-Spiele mit CocosCreator

Inhaltsverzeichnis 1. Laden Sie die WeChat-Entwic...

LinkedIn wird überarbeitet, um das Surfen auf der Website zu vereinfachen

Das geschäftliche Social-Networking-Portal Linked...

So verschieben Sie ein rotes Rechteck mit der Maus im Linux-Zeichenterminal

Alles ist eine Datei! UNIX hat es bereits gesagt....

Beispielcode zur Implementierung eines Laufschriftformats mit CSS3

Hintergrund Folgendes ist passiert: Luzhu erfuhr ...

Linux verwendet NetworkManager, um Ihre MAC-Adresse zufällig zu generieren

Egal, ob Sie zu Hause auf dem Sofa oder draußen i...

Installationsschritte für die chinesische Eingabemethode von Ubuntu 20.04

Dieser Artikel installiert die Google-Eingabemeth...