J'ai un serveur avec SSH fonctionnant sur un port non standard. Au lieu de 22, il fonctionne sur 8129. Pour me connecter, j'utilise:
ssh -p 8129 hostname
Maintenant, chaque fois que j'ai besoin de configurer une clé pour une connexion sans mot de passe, je dois copier la clé publique et l'ajouter manuellement aux clés autorisées. J'ai découvert que la commande ssh-copy-id
pourrait être utilisé pour simplifier ce processus, mais il semble qu'il n'ait pas d'option pour spécifier le port du serveur ssh.
Existe-t-il un moyen de dire ssh-copy-id
pour utiliser le port 8129, ou dois-je simplement oublier cette commande et copier/coller manuellement comme auparavant?
$ ssh-copy-id "-p 8129 user@Host"
Source:http://it-ride.blogspot.com/2009/11/use -ssh-copy-id-on-different-port.html
REMARQUE: Le port doit être en face de l'utilisateur @ Host ou il ne résoudra pas
ssh-copy-id
ne prend aucun argument qu'il pourrait transmettre à la commande sous-jacente ssh
, mais vous pouvez configurer un alias dans ~/.ssh/config
.
Host myhost
HostName hostname
Port 8129
Exécutez ensuite ssh-copy-id myhost
.
Depuis openssh-client_6.2 il y a maintenant un drapeau de port dédié pour la commande permettant cette syntaxe:
ssh-copy-id -p 8129 user@example
Il a également ajouté la prise en charge de l'ajout d'autres options ssh avec l'indicateur -o.
Voici la page de manuel d'Ubuntu pour la version appropriée, introduite dans 13.04: http://manpages.ubuntu.com/manpages/saucy/man1/ssh-copy-id.1.html
Un rapide coup d'œil à la source indique que ssh-copy-id
ne semble pas avoir de fonction permettant cela. Cependant, vous pouvez faire quelque chose comme ceci à la place:
ssh -p8129 user@Host 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_*.pub
Cela fonctionne (de ici ):
ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 221 username@Host'
J'ai toujours utilisé scp
pour le recopier:
scp -P 8129 ~/.ssh/id_*.pub user@Host:
ssh -p 8129 user@Host 'cat id_*.pub >> ~/.ssh/authorized_keys'
Bien que je doive dire, je vais probablement utiliser les autres méthodes (une ligne/connexion) si je m'en souviens à l'avenir. Mais c'est une autre option pour vous.
Sur CentOS7, c'est juste:
ssh-copy-id "-p 1234" user@Host
Veuillez prendre soin de ne pas placer user @ Host dans les guillemets ou vous obtiendrez l'erreur suivante dans cette distribution:
/usr/bin/ssh-copy-id: ERROR: Bad port ' 1234 user@Host'
Avec mon macOS, cela a fonctionné.
ssh-copy-id -i ~/.ssh/id_rsa.pub -p <port> user@Host
J'utilise cette commande:
ssh-copy-id ssh://user@ip_addr:port
Exemple:
ssh-copy-id ssh://[email protected]:23