


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.s
h 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
est équivalent à :
bin/sh -x ./test.sh hello;
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 sshexpect 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. Scriptcommande 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écuterenvoyer 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*" // 期待匹配到 'user_name@ip_string's password:' send "my_password\r" // 向命令行输入密码并回车 send "sudo -s\r" send "cd /data/logs\r" // 帮我切换到常用的工作目录 interact // 允许用户与命令行交互
执行 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
保存后,再使用 . ~./bash_profile
或source ~./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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds
![Tutoriel complet Telnet dans Windows 11 [Installation/Activation et dépannage]](https://img.php.cn/upload/article/000/000/164/168476253791019.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
<p>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. </p><p>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. </p><p>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]](https://img.php.cn/upload/article/000/887/227/168575230155539.png?x-oss-process=image/resize,m_fill,h_207,w_330)
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.

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.

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.

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

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

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#.

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.
