web-dev-qa-db-fra.com

Est-il possible d'exécuter ssh-copy-id sur un port autre que 22?

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?

100
Milan Babuškov
$ 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

115
Jsan

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

19
Colt McCormack

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
11
Chris Down

Cela fonctionne (de ici ):

ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 221 username@Host'
7
DJR

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.

5
Kevin

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'
2
Max Cuttins

Avec mon macOS, cela a fonctionné.

ssh-copy-id -i ~/.ssh/id_rsa.pub -p <port> user@Host
0
Jin Kwon

J'utilise cette commande:

ssh-copy-id ssh://user@ip_addr:port

Exemple:

ssh-copy-id ssh://[email protected]:23

0
Carlos