[SHELL]
Gopher
-
SKZ81 -
SKZ81 -
Bonjour à tous.
Je suis en train d'écrire un scripts en shell /bin/sh pour plateformes Linux (RH AS3 et Slack).
J'utilise une connexion SSH par échanges de clés.
Je voudrai écrire la clé publique de mes clients (RH AS3) dans le fichier .ssh/authorized_key2 (Slack 10) de manière unique.
En bref, si la clé est déjà dans le fichier, je voudrai ne pas l'écrire de nouveau. Or je n'arrive pas a construire un test valide pour cela.
Ci-dessous une partie de mon script :
Le test ne fonctionne pas et me renvoi "no such file or directory" concernant .ssh/authorized_keys2
Or la commande :
fonctionne parfaitement.
Merci de l'attention que vous porterez à cette question.
PS : Je n'utilise pas ssh-copy-id car il n'est pas disponible sur tous les postes clients.
Je suis en train d'écrire un scripts en shell /bin/sh pour plateformes Linux (RH AS3 et Slack).
J'utilise une connexion SSH par échanges de clés.
Je voudrai écrire la clé publique de mes clients (RH AS3) dans le fichier .ssh/authorized_key2 (Slack 10) de manière unique.
En bref, si la clé est déjà dans le fichier, je voudrai ne pas l'écrire de nouveau. Or je n'arrive pas a construire un test valide pour cela.
Ci-dessous une partie de mon script :
mykey=`cat ${pwdhome}/.ssh/id_rsa.pub`
ssh secure@xxx.xxx.xxx.xxx \
"if [ "$(grep "${mykey}" .ssh/authorized_keys2)" != "" ];then echo "${mykey}" >> .ssh/authorized_keys2;fi"
Le test ne fonctionne pas et me renvoi "no such file or directory" concernant .ssh/authorized_keys2
Or la commande :
ssh secure@xxx.xxx.xxx.xxx \
"grep "${mykey}" .ssh/authorized_keys2)"
fonctionne parfaitement.
Merci de l'attention que vous porterez à cette question.
PS : Je n'utilise pas ssh-copy-id car il n'est pas disponible sur tous les postes clients.
A voir également:
- [SHELL]
- Classic shell - Télécharger - Personnalisation
- Secure shell - Télécharger - Divers Web & Internet
- Shell infrastructure host c'est quoi - Guide
- Shell do while ✓ - Forum Shell
- Shell startup windows 10 - Guide
2 réponses
Je viens de résoudre mon probleme qui comme a chaque fois qu'un probleme est résolu, parait simple.
Voilà ce que j'ai fini par écrire :
Je me passe de cette vilaine condition "if" et le remplace par un "||" de réalisation sur échec. Parafait donc .
Merci à ceux qui aurront pris la peine de lire mon post.
Voilà ce que j'ai fini par écrire :
ssh secure@xxx.xxx.xxx.xxx "cat .ssh/authorized_keys2 | grep '${mykey}' || echo "${mykey}" >> .ssh/authorized_keys2" &> /dev/null
Je me passe de cette vilaine condition "if" et le remplace par un "||" de réalisation sur échec. Parafait donc .
Merci à ceux qui aurront pris la peine de lire mon post.