Dans le cadre d'un script de démarrage, je dois ouvrir automatiquement plusieurs fenêtres de terminal gnome, l'un de ces terminaux envoie automatiquement:
ssh [email protected]
La limite avec cela est que je dois encore taper un mot de passe pour terminer la connexion SSH.
Ce que je veux faire, c'est que mon script lance la commande et termine la connexion. Dans cette mesure, j'ai essayé de suivre les instructions décrites dans la réponse acceptée ici .
À partir du système à partir duquel je souhaite me connecter, j'ai exécuté:
ssh-keygen
Enter file in which to save the key: /home/user/ssh/keys/server1key
Il m'a ensuite invité à saisir une phrase secrète. Je l'ai laissé vide, car je ne savais pas à quoi il servirait, donc j'ai supposé que le réglage un nécessiterait de le déverrouiller avec ladite phrase secrète chaque fois que je l'utiliserais.
Poursuivant avec les instructions liées ci-dessus, j'ai ensuite couru et reçu ce qui suit:
ssh-copy-id user@IP
ERROR: No identities found
Une recherche rapide a révélé que je devais spécifier l'emplacement de la clé, car elle ne se trouvait pas dans l'emplacement de sauvegarde par défaut, j'ai donc corrigé cela:
ssh-copy-id -i /home/user/ssh/keys/server1key.pub [email protected]
Après avoir demandé le mot de passe du serveur, il a réussi à ajouter la clé. Cependant, en essayant de me connecter avec "ssh user @ IP", j'ai toujours été invité à entrer le mot de passe.
Pour autant que je sache, j'ai suivi correctement les instructions liées, soit il me manque quelque chose, soit une configuration existante m'empêche de faire fonctionner cela?
Les deux systèmes utilisent 18.04 et openssh.
la source
Réponses:
Il échoue pour la même raison que
ssh-copy-id
la première fois - c'est-à-dire parce que vous avez choisi un emplacement non par défaut pour le fichier d'identité.Vous pouvez le résoudre de la même manière, en ajoutant
-i /home/user/ssh/keys/server1key
à votressh
commande - notez que le côté client a besoin de l'emplacement du fichier de clé privée .De
man ssh
Alternativement, vous pouvez créer une
~/.ssh/config
entrée de fichier pour l'hôte sur le modèle dela source
~/.ssh/config
, sinon OpenSSH utilise la valeur par défaut à l'échelle du système/etc/ssh/ssh_config
. Au cas où quelqu'un le trouverait utile, j'ai téléchargé un ssh_config pré-construit sur mon GitHub il y a quelque temps comme point de départ pour les utilisateurs qui n'ont peut-être pas le temps de lire la page de~/.ssh/config
remplaceront celles du globalssh_config
, mais le simple fait d'avoir le fichier ne désactivera pas la configuration à l'échelle du système.Une autre raison qui
ssh-copy-id
échoue est que la clé n'a pas été ajoutée à l'agent SSH.Tout d'abord, vérifiez et démarrez si
ssh-agent
est en cours d'exécution:Si vous obtenez l'ID de processus, vous pouvez ajouter votre clé:
Avec
-k
vous ajoutez la clé au trousseau.Vérifiez si des clés sont ajoutées avec:
ssh-copy-id
devrait fonctionner maintenant.la source
J'espère que cela fonctionnera pour vous .. "sshpass -p yourpassword" il se connectera automatiquement à l'hôte distant.
[root @ localhost .ssh] # sshpass -p password123 ssh -l root localhost
la source
Exécutez simplement 2 commandes:
Longue réponse:
Puis:
la source