Maison Opération et maintenance exploitation et maintenance Linux Explication détaillée du shell pour implémenter la connexion automatique SSH

Explication détaillée du shell pour implémenter la connexion automatique SSH

Jan 25, 2020 pm 04:44 PM
shell ssh

Explication détaillée du shell pour implémenter la connexion automatique SSH

Avant-propos

La société développe et utilise docker Saisissez toujours ssh user_name@ip_string à chaque fois que vous vous connectez. sur votre machine de développement. , puis confirmez la saisie password Si vous êtes rapide, vous ferez souvent des erreurs. En tant que paresseux, je dois trouver une astuce. J'ai coché la commande ssh Comme elle nécessite une interaction cryptée avec le serveur, il n'y a pas d'option pour se connecter directement avec un mot de passe, j'ai donc dû abandonner.

Recommandé : "Tutoriel Linux"

Lorsqu'un collègue partageait la technologie il y a quelques jours, j'ai vu qu'il n'avait saisi qu'une ligne de commandes ./test.sh et avec succès connecté. J'ai été très surpris lorsque j'ai développé la machine, alors je suis revenu pour la chercher et l'étudier, et j'ai finalement écrit cet article.

Bases des scripts shell

Avant d'écrire le script de connexion automatique ssh, parlons des bases des scripts shell. Ces bases ne sont pas une grammaire ou quelque chose comme ça, c'est le cas. partout sur Internet. Voici un résumé du mécanisme de fonctionnement du script shell~

Comment fonctionne le script shell

Tout d'abord, parlons de plusieurs startups. méthodes du shell, qui consiste à démarrer le script. Je viens d'utiliser le script qui prenait initialement dix minutes, mais cela a pris deux heures. En même temps, cela nous permet également d'exécuter le shell et de savoir pourquoi.

Exécuter via le nom de fichier

Le script Shell peut être exécuté directement via le nom de fichier. Il convient de noter que le fichier nécessite une autorisation d'exécution. Utilisez sudo chmod +x ./file_name.sh pour ajouter des autorisations d'exécution au fichier ;

spécifiez l'interpréteur de script pour exécuter le fichier

Le sh file_name.sh couramment utilisé consiste à spécifier le script. interpréteur/bin/sh pour interpréter et exécuter des scripts ; les interpréteurs de scripts courants incluent : /bin/bash, etc. Nous pouvons utiliser la commande ls -l /bin/*sh pour afficher les interpréteurs de script actuellement disponibles

utilise ./ file_name Ou utilisez la commande source pour exécuter le script

Cette méthode ne crée pas de sous-processus pour exécuter le script comme les deux premières méthodes, mais utilise l'environnement shell actuel pour l'exécuter pour .bashrc ou .bash_profile à modifier, nous n'avons pas besoin de redémarrer le shell ou de nous reconnecter au système pour que les modifications actuelles prennent effet.

shebang

Lorsque nous écrivons un script shell, nous ajoutons toujours une ligne #!/binbash au début, qui est le shebang du script. on l'appelle ainsi. C'est un nom étrange. Dennis Ritchie, le développeur du langage C et d'Unix, a dit qu'il s'agissait peut-être d'un texte descriptif de style britannique similaire à "hash-bang"

J'ai publié une explication sur le wiki :

En informatique, un shebang est une ligne de chaîne composée d'un signe dièse et d'un point d'exclamation, qui apparaissent comme les deux premiers caractères de la première ligne d'un fichier texte. Lorsqu'un Shebang existe dans le fichier, le chargeur de programme du système d'exploitation de type Unix analysera le contenu après le Shebang, utilisera ce contenu comme instructions d'interprétation, appellera l'instruction et utilisera le chemin du fichier contenant le Shebang comme paramètres d'interprétation.

En termes simples, il indique l'interpréteur lorsque ce script est exécuté. Par conséquent, lorsque vous utilisez le nom de fichier pour exécuter directement le script shell, le shebang doit être inclus en plus, nous pouvons également l'ajouter ; directement après l'option shebang, on utilise l'option par défaut lors de l'exécution ;

Par exemple, le shebang de test.sh est #!/bin/sh -x, puis quand on exécute le script :

./test.sh hello
Copier après la connexion

est équivalent à :

bin/sh -x ./test.sh hello;
Copier après la connexion

Pour écrire un script de connexion automatique SSH, le shebang (interprète) nécessaire est /usr/bin/expect ;

Il convient de noter que lors de la spécification l'interpréteur de script pour exécuter le script, le shebang sera écrasé par l'interpréteur de script spécifié, c'est-à-dire que l'interpréteur de script spécifié sera utilisé en premier pour exécuter le script (j'utilise habituellement sh ./test.sh mais la commande d'invite est introuvable)

expect explication

expect est un interpréteur qui peut réaliser des tâches automatiques et interactives. Il peut également interpréter les commandes de syntaxe shell courantes. Ses fonctionnalités sont les commandes suivantes : <🎜. >

commande spawn :

La commande spawn command créera un processus enfant pour exécuter la commande commande, puis exécutera les commandes suivantes dans ce processus enfant

; Dans le script de connexion automatique ssh, nous utilisons spawn ssh user_name@ip_str et forkons un processus enfant pour exécuter la commande de connexion ssh

expect command :

expect command est ; le raccourci clavier de l'interpréteur expect, et son utilisation générale est expect "string", c'est-à-dire que si vous espérez obtenir une chaîne de caractères, vous pouvez utiliser des caractères génériques tels que * dans la chaîne de caractères après

La chaîne correspond aux informations renvoyées par la ligne de commande, expect sera exécuté immédiatement. Script

commande set timeout :

la commande set timeout n définit le délai d'attente du. attendez la commande à n secondes, et l'attente n'a pas été obtenue dans la commande n secondes, si l'attente est fausse, le script continuera à s'exécuter

envoyer la commande :

L'utilisation générale de la commande send est send "string", ce sera notre habituel Entrez une information dans la ligne de commande tout comme saisir une commande. Bien sûr, n'oubliez pas d'ajouter r après la chaîne pour l'indiquer. Entrez ;

commande d'interaction :

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

完成脚本

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

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

执行 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
Copier après la connexion

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

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Tutoriel complet Telnet dans Windows 11 [Installation/Activation et dépannage] Tutoriel complet Telnet dans Windows 11 [Installation/Activation et dépannage] May 22, 2023 pm 09:35 PM

&lt;p&gt;Telnet est l'abréviation de « Terminal Network ». Il s'agit d'un protocole que les utilisateurs peuvent utiliser pour connecter un ordinateur à un ordinateur local. &lt;/p&gt;&lt;p&gt;Ici, l'ordinateur local fait référence au périphérique qui initie la connexion, et l'ordinateur connecté à l'ordinateur local est appelé l'ordinateur distant. &lt;/p&gt;&lt;p&gt;Telnet fonctionne sur un principal client/serveur, et bien qu'il soit obsolète, il est encore utilisé par de nombreuses personnes en 2022. De nombreuses personnes sont déjà passées au système d'exploitation Windows 11, qui est le dernier système d'exploitation proposé par Microsoft. &

Explorer.exe ne démarre pas au démarrage du système [Réparer] Explorer.exe ne démarre pas au démarrage du système [Réparer] Jun 03, 2023 am 08:31 AM

De nos jours, de nombreux utilisateurs de Windows commencent à rencontrer de graves problèmes avec le système Windows. Le problème est qu'Explorer.exe ne peut pas démarrer une fois le système chargé et les utilisateurs ne peuvent pas ouvrir de fichiers ou de dossiers. Cependant, les utilisateurs Windows peuvent ouvrir l'Explorateur Windows manuellement à l'aide de l'invite de commande dans certains cas et cela doit être fait à chaque redémarrage du système ou après le démarrage du système. Cela peut être problématique et est dû aux facteurs suivants mentionnés ci-dessous. Fichiers système corrompus. Activez les paramètres de démarrage rapide. Pilotes d’affichage obsolètes ou problématiques. Des modifications ont été apportées à certains services du système. Fichier de registre modifié. En gardant à l'esprit tous les facteurs ci-dessus, nous en avons proposé quelques-uns qui aideront sûrement les utilisateurs.

Programmation serveur Python : utilisation de Paramiko pour implémenter le fonctionnement à distance SSH Programmation serveur Python : utilisation de Paramiko pour implémenter le fonctionnement à distance SSH Jun 18, 2023 pm 01:10 PM

Avec le développement du cloud computing et de l’Internet des objets, l’exploitation à distance des serveurs est devenue de plus en plus importante. En Python, nous pouvons utiliser le module Paramiko pour implémenter facilement des opérations à distance SSH. Dans cet article, nous présenterons l'utilisation de base de Paramiko et comment utiliser Paramiko en Python pour gérer des serveurs à distance. Qu'est-ce que Paramiko Paramiko est un module Python pour SSHv1 et SSHv2 qui peut être utilisé pour connecter et contrôler les clients SSH.

Comment supprimer rapidement la ligne à la fin d'un fichier sous Linux Comment supprimer rapidement la ligne à la fin d'un fichier sous Linux Mar 01, 2024 pm 09:36 PM

Lors du traitement de fichiers sous les systèmes Linux, il est parfois nécessaire de supprimer des lignes à la fin du fichier. Cette opération est très courante dans les applications pratiques et peut être réalisée grâce à quelques commandes simples. Cet article présentera les étapes pour supprimer rapidement la ligne à la fin du fichier dans le système Linux et fournira des exemples de code spécifiques. Étape 1 : Vérifiez la dernière ligne du fichier Avant d'effectuer l'opération de suppression, vous devez d'abord confirmer quelle ligne est la dernière ligne du fichier. Vous pouvez utiliser la commande tail pour afficher la dernière ligne du fichier. La commande spécifique est la suivante : tail-n1filena.

OpenSSH sous Windows : guide d'installation, de configuration et d'utilisation OpenSSH sous Windows : guide d'installation, de configuration et d'utilisation Mar 08, 2024 am 09:31 AM

Pour la plupart des utilisateurs de Windows, le protocole RDP (Remote Desktop Protocol) a toujours été le premier choix pour la gestion à distance car il offre une interface graphique conviviale. Toutefois, pour les administrateurs système qui nécessitent un contrôle plus granulaire, SSH peut mieux répondre à leurs besoins. Grâce à SSH, les administrateurs peuvent interagir avec des appareils distants via la ligne de commande, ce qui peut rendre le travail de gestion plus efficace. L'avantage de SSH réside dans sa sécurité et sa flexibilité, permettant aux administrateurs d'effectuer plus facilement des travaux de gestion et de maintenance à distance, en particulier lorsqu'ils traitent un grand nombre d'appareils ou effectuent des tâches automatisées. Ainsi, même si RDP excelle en termes de convivialité, pour les administrateurs système, SSH est supérieur en termes de puissance et de contrôle. Auparavant, les utilisateurs de Windows devaient emprunter

Configuration de la confiance mutuelle de connexion Linux SSH Configuration de la confiance mutuelle de connexion Linux SSH Feb 19, 2024 pm 07:48 PM

1. Objectif de la confiance mutuelle ssh 1. La confiance mutuelle SSH est requise lors de la création d'un cluster, ce qui favorise un fonctionnement pratique sur un autre nœud. 2. Lorsque vous utilisez l'opération de copie à distance scp, vous devez saisir le nom d'utilisateur et le mot de passe du serveur cible. À ce stade, vous pouvez configurer la confiance mutuelle SSH entre les serveurs Linux, afin de pouvoir vous connecter sans mot de passe lorsque vous travaillez entre plusieurs. Serveurs Linux. 2. Le principe de configuration de la confiance mutuelle ssh En bref, le serveur stocke le certificat de l'hôte cible afin que l'authentification puisse s'effectuer automatiquement sans saisir de mot de passe. 3. Étapes de configuration de la confiance mutuelle SSH 1. Chaque nœud génère sa propre paire de clés publique et privée. 2. Envoyez votre fichier de clé publique à l'autre partie. 3. Vérifiez si la configuration de la confiance mutuelle réussit. 4. Configurez ici la confiance mutuelle ssh avec MYDB01 et

Comment se connecter à distance à la base de données Mysql en utilisant Python basé sur ssh Comment se connecter à distance à la base de données Mysql en utilisant Python basé sur ssh May 27, 2023 pm 04:07 PM

Contexte Si vous devez accéder à la base de données Mysql d'un serveur distant, mais pendant la période de sécurité de la base de données Mysql, les mesures de sécurité sont définies pour autoriser uniquement les connexions locales (c'est-à-dire que vous devez vous connecter au serveur pour l'utiliser) , et les autres connexions à distance ne sont pas accessibles directement, et le port correspondant a également été modifié, vous devez donc vous connecter à la base de données basée sur ssh. La connexion à la base de données de cette manière est la même que l'interface de Navicat basée sur la connexion ssh. Navicat se connecte à la bibliothèque de support d'installation de la base de données Si vous souhaitez vous connecter à Mysql, vous devez d'abord installer pymysqlpipinstallpymysql pour installer la bibliothèque basée sur ssh sshtunnelpipinstallsshtunnel#.

109 exemples pratiques de script shell, le code est clair et facile à utiliser ! 109 exemples pratiques de script shell, le code est clair et facile à utiliser ! Aug 02, 2023 pm 03:25 PM

Les scripts Shell utilisent la fonction d'interprétation des commandes de Shell pour analyser un fichier texte brut, puis exécuter ces fonctions. On peut également dire qu'un script Shell est une collection d'une série de commandes.

See all articles