J'ai un serveur avec SSH s'exécutant sur un port non standard. Au lieu de 22, il fonctionne sous 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 à allowed_keys. J'ai découvert que la commande ssh-copy-id
pourrait être utilisée pour simplifier ce processus, mais il semble ne pas avoir l'option de spécifier le port du serveur ssh.
Existe-t-il un moyen d' ssh-copy-id
utiliser le port 8129 ou dois-je tout simplement oublier cette commande et copier / coller manuellement comme auparavant?
ssh
a la syntaxessh -p 1234 user@host
,ssh-copy-id "-p 1234 user@host"
et enfinscp -P 1234 user@host
. Ce serait tellement bien d'avoir la même syntaxe.rsync -e "ssh -p 1234" user@host
. Je jure que c'est plus compliqué que d'utiliser un port personnalisé.ssh-copy-id "[email protected] -p 12345" -i ~/.ssh/id_rsa.pub 192.168.0.100
ssh-copy-id -p 8129 user@host
travaux.ssh-copy-id
ne prend aucun argument qu’il pourrait transmettre à lassh
commande sous-jacente , mais vous pouvez configurer un alias dans~/.ssh/config
.Alors courez
ssh-copy-id myhost
.la source
-p
drapeau lors dessh
tentatives régulières . Ce n’est donc pas seulement la bonne réponse à cette question, c’est The Right Thing, point final.Depuis openssh-client_6.2, il existe désormais un indicateur de port dédié à la commande permettant cette syntaxe:
Il a également ajouté un support pour 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
la source
Un rapide coup d'œil à la source indique qu'il
ssh-copy-id
semble ne pas avoir de fonction permettant cela. Cependant, vous pourriez faire quelque chose comme ce qui suit:la source
Cela fonctionne (à partir d' ici ):
la source
J'ai toujours eu l'habitude
scp
de le copier:Bien que je dois dire, j'utiliserai probablement les autres méthodes (une ligne / connexion) si je m'en souviens à l'avenir. Mais ceci est une autre option pour vous.
la source
Sur CentOS7, c'est juste:
Veillez à ne pas placer utilisateur @ hôte entre guillemets ou vous obtiendrez l'erreur suivante dans cette distribution:
la source
Avec mon macOS, cela a fonctionné.
la source
J'utilise cette commande:
ssh-copy-id ssh://user@ip_addr:port
Exemple:
ssh-copy-id ssh://[email protected]:23
la source