Heim Betrieb und Instandhaltung Betrieb und Wartung von Linux Detaillierte Erläuterung der Shell zur Implementierung der automatischen SSH-Anmeldung

Detaillierte Erläuterung der Shell zur Implementierung der automatischen SSH-Anmeldung

Jan 25, 2020 pm 04:44 PM
shell ssh

Detaillierte Erläuterung der Shell zur Implementierung der automatischen SSH-Anmeldung

Vorwort

Das Unternehmen entwickelt und verwendet docker. Geben Sie bei jedem Login immer ssh user_name@ip_string ein an Ihre Entwicklungsmaschine und bestätigen Sie dann die Eingabe password. Wenn Sie schnell sind, machen Sie oft Fehler. Als fauler Mensch muss ich einen Trick finden. Da er eine verschlüsselte Interaktion mit dem Server erfordert, gibt es keine Möglichkeit, sich direkt mit einem Passwort anzumelden, also musste ich aufgeben. ssh

Empfohlen: „

Linux-Tutorial“

Als ein Kollege vor ein paar Tagen Technologie teilte, sah ich, dass er nur eine Befehlszeile

eingegeben hatte, und zwar erfolgreich Eingeloggt. Ich war sehr überrascht, als ich die Maschine entwickelte, also kam ich zurück, um sie zu suchen und zu studieren, und schrieb schließlich diesen Artikel. ./test.sh

Grundlagen von Shell-Skripten

Bevor wir das automatische SSH-Anmeldeskript schreiben, sprechen wir über die Grundlagen von Shell-Skripten, es ist keine Grammatik oder so etwas Überall im Internet. Hier ist eine Zusammenfassung des Funktionsmechanismus des Shell-Skripts Es geht darum, zunächst das Skript auszuführen, das ursprünglich zehn Minuten in Anspruch nahm, die Fertigstellung jedoch zwei Stunden dauerte. Gleichzeitig ermöglicht es uns auch, die Shell auszuführen und zu erfahren, warum.

Über den Dateinamen ausführen

Shell-Skript kann direkt über den Dateinamen ausgeführt werden. Es ist zu beachten, dass für die Datei eine Ausführungsberechtigung erforderlich ist. Verwenden Sie

, um der Datei Ausführungsberechtigungen hinzuzufügen.

geben Sie den Skriptinterpreter an, der die Datei ausführen soll.

Das häufig verwendete sudo chmod +x ./file_name.sh h dient zur Angabe des Skripts Interpreter

zum Interpretieren und Ausführen von Skripten; zu den gängigen Skriptinterpretern gehören:

usw. Wir können den Befehl verwenden, um die aktuell verfügbaren Skriptinterpreter anzuzeigen. Dateiname Oder verwenden Sie den Quellbefehl, um das Skript auszuführen

Diese Methode forkt keinen Unterprozess zur Ausführung des Skripts wie die ersten beiden Methoden auf, sondern verwendet die aktuelle Shell-Umgebung, um es für .bashrc auszuführen oder .bash_profile geändert werden, müssen wir die Shell nicht neu starten oder uns erneut beim System anmelden, damit die aktuellen Änderungen wirksam werden. sh file_name.s/bin/sh/bin/bashShebangls -l /bin/*sh

Wenn wir ein Shell-Skript schreiben, fügen wir am Anfang immer eine Zeile #!/binbash hinzu, die der Grund dafür ist Es heißt so. Es ist ein seltsamer Name. Dennis Ritchie, der Entwickler der C-Sprache und von Unix, sagte, es könnte sich um einen beschreibenden Text im britischen Stil handeln, der „Hash-Bang“ ähnelt. Hat eine Erklärung im Wiki gepostet:

In der Informatik ist ein Shebang eine Zeichenfolge, die aus einem Nummernzeichen und einem Ausrufezeichen besteht, die als die ersten beiden Zeichen der ersten Zeile einer Textdatei erscheinen. Wenn in der Datei ein Shebang vorhanden ist, analysiert der Programmlader des Unix-ähnlichen Betriebssystems den Inhalt nach dem Shebang, verwendet diesen Inhalt als Interpreteranweisungen, ruft die Anweisung auf und verwendet den Dateipfad, der den Shebang enthält, als Interpreterparameter.

Einfach ausgedrückt gibt es den Interpreter an, wenn dieses Skript ausgeführt wird. Wenn Sie also den Dateinamen zum direkten Ausführen des Shell-Skripts verwenden, können wir ihn auch anhängen direkt nach der Shebang-Option verwenden wir die Option standardmäßig bei der Ausführung;

Der Shebang von test.sh lautet beispielsweise #!/bin/sh -x, und wenn wir das Skript ausführen:

./test.sh hello
Nach dem Login kopieren

ist äquivalent zu:

bin/sh -x ./test.sh hello;
Nach dem Login kopieren
Um ein automatisches SSH-Anmeldeskript zu schreiben, ist der benötigte Shebang (Interpreter) /usr/bin/expect;

Das sollte bei der Angabe beachtet werden Der Skriptinterpreter zum Ausführen des Skripts wird vom angegebenen Skriptinterpreter überschrieben, das heißt, der angegebene Skriptinterpreter wird zuerst zum Ausführen des Skripts verwendet (ich verwende normalerweise sh ./test.sh, aber der Eingabeaufforderungsbefehl wurde nicht gefunden).

expect-Erklärung

expect ist ein Interpreter, der automatische und interaktive Aufgaben realisieren kann. Er kann auch gängige Shell-Syntaxbefehle interpretieren:

Spawn-Befehl:

Der Spawn-Befehl verzweigt einen untergeordneten Prozess, um den Befehlsbefehl auszuführen, und führt dann nachfolgende Befehle in diesem untergeordneten Prozess aus Im automatischen SSH-Anmeldeskript verwenden wir spawn ssh user_name@ip_str und forken einen untergeordneten Prozess, um den SSH-Anmeldebefehl

Expect-Befehl auszuführen:

Expect-Befehl ist Der Schlüsselbefehl des Expect-Interpreters und seine allgemeine Verwendung ist „expect“ (Zeichenfolge). Wenn Sie also erwarten, eine Zeichenfolge zu erhalten, können Sie in der Zeichenfolge „string“ Platzhalter wie * verwenden Die Zeichenfolge entspricht den von der Befehlszeile zurückgegebenen Informationen. Es wird erwartet, dass das Skript sofort ausgeführt wird.

Befehl „set timeout“: Erwarten Sie den Befehl auf n Sekunden und der Erwartungswert wurde nicht innerhalb von n Sekunden erreicht. Wenn der Erwartungswert falsch ist, wird das Skript weiterhin ausgeführt:

Die allgemeine Verwendung des Sendebefehls ist „Sendezeichenfolge“. Dies ist unsere übliche Eingabe einer Information in die Befehlszeile, genau wie bei der Eingabe eines Befehls. Vergessen Sie natürlich nicht, nach der Zeichenfolge ein „r“ hinzuzufügen, um dies anzuzeigen Geben Sie den Befehl

ein:

interact命令很简单,执行到此命令时,脚本fork的子进程会将操作权交给用户,允许用户与当前shell进行交互;

完成脚本

以下是一个完成版的脚本 test.sh:

#!/usr/bin/expect                   // 指定shebang
set timeout 3                       // 设定超时时间为3秒
spawn ssh user_name@172.***.***.*** // fork一个子进程执行ssh命令
expect "*password*"                 // 期待匹配到 'user_name@ip_string's password:' 
send "my_password\r"                // 向命令行输入密码并回车
send "sudo -s\r" 
send "cd /data/logs\r"              // 帮我切换到常用的工作目录
interact                            // 允许用户与命令行交互
Nach dem Login kopieren

执行 sudo chmod +x ./test.sh命令给shell脚本添加执行权限;

运行 ./test.sh命令,一键登陆成功!

简单的几个命令,,搭配起来解决了与命令行的交互问题后,很多复杂的功能也不在话下了~

alias别名

脚本完成了,可是还是有些小瑕疵:

输入./file_name.sh命令太长。。。

只能在脚本目录中才能执行,不然使用绝对路径输出的命令更长。

这里我们想到了linux的alias命令:

alias命令:

alias命令使用方式为 alias alias_name="ori_command",将alias_name设置为ori_command的别名,这样我们输入执行alias_name,就相当于执行了ori_command;

可是,我们会发现,当你关闭当前shell后,再打开一个shell窗口,再使用alias_name,系统提示command not found;

有没有能保持命令的方式呢?编辑bash_profile文件。

bash_profile文件

我们编辑bash_profile文件,此文件会在终端窗口创建的时候首先执行一次,所以可以帮我们再设置一次别名;

执行命令vim ~./bash_profile,在文件内部添加:

alias alias_name="/root_dir/../file_name.sh
Nach dem Login kopieren

保存后,再使用 . ~./bash_profilesource ~./bash_profile 在当前脚本执行一遍设置别名命令,完成设置;

这样,我们无论在哪个目录,只要输入alias_name命令,回车,真正的一键登陆!

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Shell zur Implementierung der automatischen SSH-Anmeldung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Vollständiges Tutorial zu Telnet in Windows 11 [Installation/Aktivierung und Fehlerbehebung] Vollständiges Tutorial zu Telnet in Windows 11 [Installation/Aktivierung und Fehlerbehebung] May 22, 2023 pm 09:35 PM

<p>Telnet ist die Abkürzung für „Terminal Network“. Es handelt sich um ein Protokoll, mit dem Benutzer einen Computer mit einem lokalen Computer verbinden können. </p><p>Hier bezieht sich der lokale Computer auf das Gerät, das die Verbindung initiiert, und der mit dem lokalen Computer verbundene Computer wird als Remote-Computer bezeichnet. </p><p>Telnet läuft auf einem Client/Server-Prinzip und obwohl es veraltet ist, wird es auch im Jahr 2022 immer noch von vielen Menschen verwendet. Viele Menschen sind bereits auf das Betriebssystem Windows 11 umgestiegen, das neueste Betriebssystem von Microsoft. &

Explorer.exe startet beim Systemstart nicht [Fix] Explorer.exe startet beim Systemstart nicht [Fix] Jun 03, 2023 am 08:31 AM

Heutzutage stoßen viele Windows-Benutzer auf schwerwiegende Windows-Systemprobleme. Das Problem besteht darin, dass Explorer.exe nach dem Laden des Systems nicht gestartet werden kann und Benutzer keine Dateien oder Ordner öffnen können. Allerdings können Windows-Benutzer in einigen Fällen den Windows Explorer manuell über die Eingabeaufforderung öffnen und müssen dies bei jedem Systemneustart oder nach dem Systemstart tun. Dies kann problematisch sein und ist auf die folgenden Faktoren zurückzuführen. Beschädigte Systemdateien. Aktivieren Sie die Schnellstarteinstellungen. Veraltete oder problematische Anzeigetreiber. An einigen Diensten im System wurden Änderungen vorgenommen. Geänderte Registrierungsdatei. Unter Berücksichtigung aller oben genannten Faktoren haben wir einige gefunden, die den Benutzern sicherlich helfen werden

So löschen Sie schnell die Zeile am Ende einer Datei unter Linux So löschen Sie schnell die Zeile am Ende einer Datei unter Linux Mar 01, 2024 pm 09:36 PM

Bei der Verarbeitung von Dateien unter Linux-Systemen ist es manchmal erforderlich, Zeilen am Ende der Datei zu löschen. Dieser Vorgang kommt in praktischen Anwendungen sehr häufig vor und kann durch einige einfache Befehle erreicht werden. In diesem Artikel werden die Schritte zum schnellen Löschen der Zeile am Ende der Datei im Linux-System vorgestellt und spezifische Codebeispiele bereitgestellt. Schritt 1: Überprüfen Sie die letzte Zeile der Datei. Bevor Sie den Löschvorgang durchführen, müssen Sie zunächst bestätigen, welche Zeile die letzte Zeile der Datei ist. Sie können den Befehl tail verwenden, um die letzte Zeile der Datei anzuzeigen. Der spezifische Befehl lautet wie folgt: tail-n1filena

Python-Serverprogrammierung: Verwendung von Paramiko zur Implementierung des SSH-Remotebetriebs Python-Serverprogrammierung: Verwendung von Paramiko zur Implementierung des SSH-Remotebetriebs Jun 18, 2023 pm 01:10 PM

Mit der Entwicklung des Cloud Computing und des Internets der Dinge hat die Fernbedienung von Servern immer mehr an Bedeutung gewonnen. In Python können wir das Paramiko-Modul verwenden, um SSH-Remote-Operationen einfach zu implementieren. In diesem Artikel stellen wir die grundlegende Verwendung von Paramiko und die Verwendung von Paramiko in Python zur Fernverwaltung von Servern vor. Was ist Paramiko Paramiko ist ein Python-Modul für SSHv1 und SSHv2, mit dem SSH-Clients verbunden und gesteuert werden können

OpenSSH unter Windows: Installations-, Konfigurations- und Nutzungshandbuch OpenSSH unter Windows: Installations-, Konfigurations- und Nutzungshandbuch Mar 08, 2024 am 09:31 AM

Für die meisten Windows-Benutzer war Remote Desktop Protocol (RDP) schon immer die erste Wahl für die Fernverwaltung, da es eine benutzerfreundliche grafische Oberfläche bietet. Für Systemadministratoren, die eine detailliertere Kontrolle benötigen, ist SSH jedoch möglicherweise besser geeignet. Über SSH können Administratoren über die Befehlszeile mit Remote-Geräten interagieren, was die Verwaltungsarbeit effizienter gestalten kann. Der Vorteil von SSH liegt in seiner Sicherheit und Flexibilität, die es Administratoren erleichtert, Remote-Verwaltungs- und Wartungsarbeiten durchzuführen, insbesondere wenn sie mit einer großen Anzahl von Geräten arbeiten oder automatisierte Aufgaben ausführen. Während sich RDP in puncto Benutzerfreundlichkeit auszeichnet, ist SSH für Systemadministratoren hinsichtlich Leistung und Kontrolle überlegen. Bisher mussten Windows-Benutzer etwas ausleihen

So stellen Sie mithilfe von Python basierend auf SSH eine Remoteverbindung zur MySQL-Datenbank her So stellen Sie mithilfe von Python basierend auf SSH eine Remoteverbindung zur MySQL-Datenbank her May 27, 2023 pm 04:07 PM

Hintergrund Wenn Sie auf die MySQL-Datenbank eines Remote-Servers zugreifen müssen, die Sicherheitsmaßnahmen jedoch für den Sicherheitszeitraum der MySQL-Datenbank so eingestellt sind, dass nur lokale Verbindungen zugelassen werden (d. h. Sie müssen sich beim Server anmelden, um sie verwenden zu können). Auf andere Remoteverbindungen kann nicht direkt zugegriffen werden. Der entsprechende Port wurde ebenfalls geändert, sodass Sie eine Verbindung zur Datenbank basierend auf SSH herstellen müssen. Das Herstellen einer Verbindung zur Datenbank entspricht auf diese Weise der Schnittstelle in Navicat, die auf einer SSH-Verbindung basiert. Navicat stellt eine Verbindung zur Datenbankinstallationsunterstützungsbibliothek her. Wenn Sie eine Verbindung zu MySQL herstellen möchten, müssen Sie zuerst pymysqlpipinstallpymysql installieren, um die SSH-basierte Bibliothek sshtunnelpipinstallsshtunnel# zu installieren.

Konfiguration der gegenseitigen Vertrauensstellung bei der Linux-SSH-Anmeldung Konfiguration der gegenseitigen Vertrauensstellung bei der Linux-SSH-Anmeldung Feb 19, 2024 pm 07:48 PM

1. Der Zweck des gegenseitigen SSH-Vertrauens 1. Beim Aufbau eines Clusters ist gegenseitiges SSH-Vertrauen erforderlich, was einem bequemen Betrieb auf einem anderen Knoten förderlich ist. 2. Wenn Sie den SCP-Remote-Kopiervorgang verwenden, müssen Sie den Benutzernamen und das Kennwort des Zielservers eingeben. Zu diesem Zeitpunkt können Sie die gegenseitige SSH-Vertrauensstellung zwischen Linux-Servern konfigurieren, sodass Sie sich beim Betrieb zwischen mehreren Servern ohne Kennwort anmelden können Linux-Server. 2. Das Prinzip der gegenseitigen SSH-Vertrauenskonfiguration Kurz gesagt: Der Server speichert das Zertifikat des Zielhosts, sodass die Authentifizierung automatisch durchgeführt werden kann, ohne dass ein Kennwort eingegeben werden muss. 3. Schritte zur Konfiguration der gegenseitigen SSH-Vertrauensstellung 1. Jeder Knoten generiert sein eigenes öffentliches Schlüssel- und privates Schlüsselpaar. 2. Senden Sie Ihre öffentliche Schlüsseldatei an die andere Partei. 3. Überprüfen Sie, ob die gegenseitige Vertrauenskonfiguration erfolgreich ist. 4. Konfigurieren Sie hier die gegenseitige SSH-Vertrauensstellung mit MYDB01 und

Installieren Sie SSH auf dem Linux Debian11-Server, erstellen Sie einen neuen Benutzer, erlauben Sie die SSH-Remote-Anmeldung und konfigurieren Sie die sichere SSH-Anmeldung! Installieren Sie SSH auf dem Linux Debian11-Server, erstellen Sie einen neuen Benutzer, erlauben Sie die SSH-Remote-Anmeldung und konfigurieren Sie die sichere SSH-Anmeldung! Mar 01, 2024 pm 07:16 PM

Die Schritte zum Installieren von SSH auf Ihrem Debian11-Server und zum Erstellen eines neuen Benutzers, um die SSH-Remote-Anmeldung zu ermöglichen, sind wie folgt: Schritt 1: SSH installieren Um den SSH-Server zu installieren, müssen Sie sich als Root-Benutzer oder bei Ihrem Debian11-Server anmelden ein Benutzer mit Sudo-Berechtigungen. Führen Sie im Terminal den folgenden Befehl aus, um den SSH-Server zu installieren: sudoaptupdatesudoaptinstallopenssh-server Schritt 2: Neuen Benutzer erstellen Um einen neuen Benutzer zu erstellen, können Sie den Befehl adduser verwenden. Ersetzen Sie den folgenden Befehl durch Ihren gewünschten Benutzernamen: sudoaddusernew_username Sie werden aufgefordert, das Passwort des neuen Benutzers und andere festzulegen

See all articles