Il y a deux machines Linux, A et B. Les scripts s'exécutant sur A doivent être capables de SSH dans B. Donc A génère une clé publique (probablement un id_rsa.pub généré par ssh-keygen), puis utilise sa clé privée respective ( encore une fois, probablement id_rsa) pour établir cette connexion SSH.
Si quelque chose que j'ai dit ci-dessus est incorrect ou trompé, veuillez commencer par me corriger!
En supposant que je suis plus ou moins sur la cible:
Ouais
mais B a besoin que la clé publique de A soit répertoriée dans le fichier des clés autorisées de B pour que A puisse se connecter à B
vous pouvez également supprimer id_rsa.pub et ssh en B et cela fonctionnera toujours, car la clé publique est générée à chaque connexion ssh et n'est stockée dans aucun id_rsa.pub
Comment A «donne-t-il» à B sa clé publique (id_rsa.pub)? Doit-il s'agir d'un processus manuel ou peut-il être automatisé? Si c'est manuel, quel est le processus? S'il est automatisé, quelle est la commande?
manuel - quelque chose comme
de-
cat ~/.ssh/id_rsa.pub | ssh USER@HOST "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
ou encore plus manuellement, pour décomposer la commande
A $ cat id_rsa.pub | ssh user@host 'cat>~/a.a'
puis sur B, assurez-vous que ~ / .ssh existe puis faites cat a.a >> ~/.ssh/authorized_keys
et vous pouvez attraper les clés autorisées de B avant et après pour vous assurer que la clé est répertoriée.
Ou vous pouvez envoyer id_rsa.pub par e-mail à un compte de messagerie, puis à partir de B, B peut vérifier l'e-mail et ajouter le contenu de id_rsa.pub dans son fichier authorized_keys
automatiquement
La commande ssh-copy-id
Vous devez pouvoir entrer ssh, vous avez donc besoin d'un accès par mot de passe
Au lieu de faire ssh user @ host, vous faites ssh-copy-id user @ host et vous êtes invité à entrer un mot de passe, vous le saisissez, vous y êtes, il copiera la clé publique. Et la prochaine fois que vous utiliserez ssh user @ host, il utilisera la clé.
Lorsque B "obtient" cette clé publique, où va-t-elle ou est-elle stockée?
B's ~ / .ssh / authorized_keys
Lors du lancement de la connexion SSH à B, comment A «utilise-t-il» sa clé privée (id_rsa) dans le cadre de cette connexion?
eh bien, je ne sais pas grand-chose à ce sujet, du haut de ma tête, mais tout ce qui est crypté avec une clé peut être décrypté avec l'autre clé, et s'identifier est un peu différent de l'envoi de données .. et il peut y avoir quelque chose sur une clé temporaire aussi.