Astuce pour "ssh-copy-id" sur un port ssh différent
Bon, a priori vous connaissez la commande ssh-copy-id
pour copier sa clé publique sur un serveur distant afin de s’identifier par clé et plus par mot de passe.
Le principe est d’avoir une paire de clés (privée/publique), le plus souvent dans ~/.ssh/id_rsa(.pub)
et de copier la clé publique dans ~/.ssh/authorized_keys
sur la machine distante.
$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@host
Mais si la machine distante n’accepte pas les connexions sur le port 22 ou s’il y a une redirection de ports sur le routeur, il faut lui indiquer ce port, par exemple :
$ ssh-copy-id -i ~/.ssh/id_rsa.pub -p 2222 user@host
Mais ça ne marche pas car ssh-copy-id
ne comprend que 2 paramètres et si on met -p 2222
en second, ça n’est pas un motif de type [user@]host
, et si on le met après, en troisième, il est ignoré.
Et bien il suffit d’entourer les infos de connexion ssh par des guillemets pour qu’ils soient vus comme un seul paramètre :
$ ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 2222 user@host"