J'ai deux serveurs. Les deux serveurs sont dans CentOS 5.6. Je souhaite passer d'un serveur SSH à un autre à l'aide d'une clé privée que j'ai (clé privée OpenSSH SSH-2).
Je ne sais pas comment le faire sur Unix. Mais ce que j’ai fait sur Windows avec Putty, c’était d’alimenter ma clé privée OpenSSH avec putty-gen et de générer une clé privée au format PPK.
Cependant, je créerais un script bash à partir du serveur 1 qui exécutera certaines commandes sur le serveur 2 via SSH.
Comment puis-je SSH sur le serveur 2 en utilisant mon fichier de clé privée à partir du serveur 1?
ssh-copy-id user@machine
Réponses:
Vous avez besoin de votre clé publique SSH et de votre clé privée ssh. Les clés peuvent être générées avec
ssh_keygen
. La clé privée doit être conservée sur le serveur 1 et la clé publique sur le serveur 2.Ceci est complètement décrit dans la page de manuel de openssh, je vais donc en citer beaucoup. Vous devriez lire la section 'Authentification'. Le manuel openSSH devrait également être très utile: http://www.openssh.org/manual.html
S'il vous plaît soyez prudent avec ssh car cela affecte la sécurité de votre serveur.
De
man ssh
:Cela signifie que vous pouvez stocker votre clé privée dans votre répertoire personnel au format .ssh. Une autre possibilité consiste à indiquer à ssh via le
-i
commutateur de paramètre d'utiliser un fichier d'identité spécial. Aussi deman ssh
:Ceci est pour la clé privée. Vous devez maintenant introduire votre clé publique sur le serveur 2. Encore une citation de
man ssh
:La méthode la plus simple consiste à copier le fichier sur le serveur 2 et à l’ajouter au fichier authorised_keys:
L'autorisation via une clé publique doit être autorisée pour le démon ssh, voir
man ssh_config
. Cela peut généralement être fait en ajoutant l'instruction suivante au fichier de configuration:la source
ssh -i keyfile
Merci!ssh-copy-id
:ssh-copy-id -i ~/.ssh/foo.id_rsa remote.example.com
.ssh-add
après avoir créé une clé sur l’ordinateur auquel vous vous connectez. c'est ce qui cause un mal de tête à la plupart des gens.$ ssh -i ~/.ssh/id_rsa [email protected]
l'erreur,[email protected]: Permission denied (publickey).
la clé est créée, ajoutée localement à l'aide dessh-add
, et ajoutée en tant que clé autorisée sur le serveur distant.J'ai utilisé ssh avec l'option -i pour ajouter votre clé ici.
Si vous souhaitez transmettre arg1, arg2 avec un fichier .sh, transmettez-le après un fichier .sh et utilisez un espace d’utilisation pour le séparer.
ssh -i home/avr/new.pem [email protected] "/var/www/beta/betatolive.sh mmin 30"
la source
chmod 600 home/avr/new.pem
La première chose à faire est de vous assurer que vous avez exécuté la commande keygen pour générer les clés:
Utilisez ensuite cette commande pour pousser la clé sur le serveur distant, en la modifiant pour qu'elle corresponde à votre nom de serveur.
la source
ssh-copy-id user@hostname
placeAjoutez la clé publique (
id_[rd]sa.pub
) de votre machine source (à partir de laquelle vous effectuez le SSH) au~/.ssh/authorized_keys
fichier du serveur de destination du nom d'utilisateur que vous souhaitez utiliser pour SSH. Si vous avez perdu la clé publique, vous voudrez en créer une nouvelle avecssh-keygen
. L'utilisation des arguments par défaut pour cela devrait être acceptable dans la plupart des cas. Si vous avez besoin d'instructions plus détaillées, vous pouvez rechercher des milliers de tutoriels sur Google.la source
Utilisez
ssh-copy-id
sur le serveur 1, en supposant que vous avez la paire de clés (générée avecssh-keygen
):Maintenant, vous devriez être capable de ssh sur le serveur 2 avec ssh en utilisant la clé privée
En effet, si vous vérifiez
cat ~/.ssh/authorized_keys
sur le serveur 2, vous verrez que la clé publique est ajoutée pour vous.la source