Script sh automatisé pour réaliser une connexion sans mot de passe

 yum -y install attendez
yum install sshpass

 

#!/bin/bash
#!/bin/bash
#------------------------------------------#
# FileName:             ssh_auto.sh
# Revision:             1.1.0
# Date:                 2017-07-14 04:50:33
# Author:               vinsent
# Email:                [email protected]
# Website:              www.vinsent.cn
# Description:          This script can achieve ssh password-free login, 
#                       and can be deployed in batches, configuration
#------------------------------------------#
# Copyright:            2017 vinsent
# License:              GPL 2+
#------------------------------------------#
[ ! -f /root/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -p ‘‘ &>/dev/null  # 密钥对不存在则创建密钥
while read line;do
        ip=`echo $line | cut -d " " -f1`             # 提取文件中的ip
        user_name=`echo $line | cut -d " " -f2`      # 提取文件中的用户名
        pass_word=`echo $line | cut -d " " -f3`      # 提取文件中的密码
expect <<EOF
        spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $user_name@$ip
        expect {
                "yes/no" { send "yes\n";exp_continue}
                "password" { send "$pass_word\n"}
        }
        expect eof
EOF
  
done < /root/host_ip.txt      # 读取存储ip的文件

[root @ localhost kubeedge] # ./autossh.sh 
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] # Copiez la clé publique sur l'hôte cible
/ usr / bin / ssh- copy- id: INFO: Source de la (des) clé (s) à installer: "/root/.ssh/id_rsa.pub"
/ usr / bin / ssh-copy-id: ERREUR: Trop d'arguments. Attente d'un nom d'hôte cible, obtenu : '[email protected]''#''Copiez la clé publique sur l'hôte cible'

Utilisation: / usr / bin / ssh-id-copie [-h | -? | -F | -n] [-i [fichier_identité]] [-p port] [[-o <options ssh -o>] .. .] [user @] hostname
        -f: force mode - copie les clés sans essayer de vérifier si elles sont déjà installées
        -n: exécution à sec - aucune clé n'est réellement copiée
        -h | -?: affiche cette aide
attendez: spawn id exp6 pas ouvert
    lors de l'exécution de
"expect eof"
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] # 复制 公钥 到 目标 主机
/ usr / bin / ssh-copy-id: INFO : Source de la / des clé (s) à installer: "/root/.ssh/id_rsa.pub"
/ usr / bin / ssh-copy-id: ERREUR: Trop d'arguments. En attendant un nom d'hôte cible, obtenu: '[email protected]' '#' '复制 公钥 到 目标 主机'

Utilisation: / usr / bin / ssh-id-copie [-h | -? | -F | -n] [-i [fichier_identité]] [-p port] [[-o <options ssh -o>] .. .] [user @] hostname
        -f: force mode - copie les clés sans essayer de vérifier si elles sont déjà installées
        -n: exécution à sec - aucune clé n'est réellement copiée
        -h | -?: affiche cette aide
attendez: spawn id exp6 pas ouvert
    lors de l'exécution de
"expect eof"
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] # 复制 公钥 到 目标 主机
/ usr / bin / ssh-copy-id: INFO : Source de la / des clé (s) à installer: "/root/.ssh/id_rsa.pub"
/ usr / bin / ssh-copy-id: ERREUR: Trop d'arguments. En attendant un nom d'hôte cible, obtenu: '[email protected]' '#' '复制 公钥 到 目标 主机'

Utilisation: / usr / bin / ssh-id-copie [-h | -? | -F | -n] [-i [fichier_identité]] [-p port] [[-o <options ssh -o>] .. .] [user @] hostname
        -f: force mode - copie les clés sans essayer de vérifier si elles sont déjà installées
        -n: exécution à sec - aucune clé n'est réellement copiée
        -h | -?: affiche cette aide
attendez: spawn id exp6 pas ouvert
    lors de l'exécution de
"expect eof"
[root @ localhost kubeedge] # vim ./autossh.sh 
[root @ localhost kubeedge] # ./autossh.sh 
spawn ssh-copy-id -i /root/.ssh/id_rsa. pub [email protected]
/ usr / bin / ssh-copy-id: INFO: Source des clés à installer: "/root/.ssh/id_rsa.pub"
/ usr / bin / ssh-copy-id: INFO: tentative de connexion avec la ou les nouvelles clés, pour filtrer celles qui sont déjà installées
/ usr / bin / ssh-copy-id: INFO: 1 clé (s) ) restent à installer - si vous êtes invité maintenant, il s'agit d'installer le nouveau
mot de passe de clés [email protected]

Nombre de clé (s) ajoutée (s): 1

Essayez maintenant de vous connecter à la machine, avec: "ssh '[email protected]'"
et assurez-vous que seules les clés que vous vouliez ont été ajoutées.

spawn ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
/ usr / bin / ssh-copy-id: INFO: Source de la ou des clés à installer: "/ root /. ssh / id_rsa.pub "
/ usr / bin / ssh-copy-id: INFO: tentative de connexion avec la ou les nouvelles clés, pour filtrer celles qui sont déjà installées
/ usr / bin / ssh-copy-id: INFO: 1 clé (s) reste (s) à installer - si vous êtes invité maintenant, il s'agit d'installer le nouveau
mot de passe de clés [email protected]

Nombre de clé (s) ajoutée (s): 1

Essayez maintenant de vous connecter à la machine, avec: "ssh '[email protected]'"
et assurez-vous que seules les clés que vous vouliez ont été ajoutées.

spawn ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
/ usr / bin / ssh-copy-id: INFO: Source de la ou des clés à installer: "/ root /. ssh / id_rsa.pub "
/ usr / bin / ssh-copy-id: INFO: tentative de connexion avec la ou les nouvelles clés, pour filtrer celles qui sont déjà installées
/ usr / bin / ssh-copy-id: INFO: 1 clé (s) reste (s) à installer - si vous êtes invité maintenant, il s'agit d'installer le nouveau
mot de passe de clés [email protected]

Nombre de clé (s) ajoutée (s): 1

Essayez maintenant de vous connecter à la machine, avec: "ssh '[email protected]'"
et assurez-vous que seules les clés que vous vouliez ont été ajoutées.

[root @ localhost kubeedge] # ls
autossh.sh ip.log ssh.sh
[root @ localhost kubeedge] # ssh [email protected]
Dernier échec de connexion: lundi 2 novembre 06:38:15 EST 2020 à partir de 192.168.56.103 sur ssh : notty
Il y a eu 3 tentatives de connexion infructueuses depuis la dernière connexion réussie.
Dernière connexion: Lun 2 novembre 06:20:29 2020 à partir de 192.168.56.1
[root @ localhost ~] # ifconfig
enp0s3: flags = 4163 <UP, BROADCAST, RUNNING, MULTICAST> mtu 1500
        inet 10.0.2.6 masque de réseau 255.255.255.0 diffusion 10.0 .2.255
        inet6 fe80 :: c40f: c6fb: c802: a2ce prefixlen 64 scopeid 0x20 <link>
        inet6 fe80 :: d475: 845d: e391: 4321 prefixlen 64 scopeid 0x20 <link>
        inet6 fd17: 625c: f037: 2: a961: 3128 : f0fa: 8abd prefixlen 64 scopeid 0x0 <global>
        ether 08: 00: 27: ad: 18: c9 txqueuelen 1000 (Ethernet)
        Paquets RX 14839 octets 19725195 (18,8 Mio)
        Erreurs RX 0 abandonné 0 dépassements 0 trame 0
        Paquets TX 6564 octets 472543 (461,4 Kio)
        Erreurs TX 0 abandonné 0 dépassements 0 transporteur 0 collisions 0

enp0s8: flags = 4163 <UP, BROADCAST, RUNNING, MULTICAST> mtu 1500
        inet 192.168.56.104 netmask 255.255.255.0 broadcast 192.168.56.255
        inet6 fe80 :: 5c24: 833a: 8dce: c67 prefixlen 64 scopeid 0x20 <link>
        ether 08:00 : 27: ba: 87: bb txqueuelen 1000 (Ethernet)
        Paquets RX 154475 octets 12247970 (11,6 Mio)
        Erreurs RX 0 abandonné 0 dépassements 0 trame 0
        Paquets TX 228511 octets 25593975 (24,4 Mio)
        Erreurs TX 0 abandonné 0 dépassements 0 porteuse 0 collisions 0

lo: flags = 73 <UP, LOOPBACK, RUNNING> mtu 65536
        inet 127.0.0.1 netmask 255.0.0.0
        inet6 :: 1 prefixlen 128 scopeid 0x10 <host>
        loop txqueuelen 1000 (Local Loopback)
        Paquets RX 0 octets 0 (0.0 B)
        RX erreurs 0 abandonnées 0 dépassements 0 trame 0
        paquets TX 0 octets 0 (0,0 B)
        erreurs TX 0 abandonnées 0 dépassements 0 porteuse 0 collisions 0

[root @ localhost ~] # 
 

Je suppose que tu aimes

Origine blog.csdn.net/wxb880114/article/details/109456468
conseillé
Classement