Tengo un servidor con SSH ejecutándose en un puerto no estándar. En lugar de 22, se ejecuta en 8129. Para iniciar sesión, uso:
ssh -p 8129 hostname
Ahora, cada vez que necesito configurar una clave para iniciar sesión sin contraseña, tengo que copiar la clave pública y agregarla a autorizado_keys manualmente. Descubrí que el comando ssh-copy-id
podría usarse para simplificar este proceso, pero parece que no tiene una opción para especificar el puerto del servidor ssh.
¿Hay alguna forma de decirle ssh-copy-id
que use el puerto 8129, o debería olvidarme de este comando y copiar / pegar manualmente como antes?
ssh
tiene sintaxisssh -p 1234 user@host
,ssh-copy-id "-p 1234 user@host"
y finalmentescp -P 1234 user@host
. Sería muy bueno tener la misma sintaxis.rsync -e "ssh -p 1234" user@host
. Juro que es más complicado de lo que vale la pena usar un puerto personalizado.ssh-copy-id "[email protected] -p 12345" -i ~/.ssh/id_rsa.pub 192.168.0.100
ssh-copy-id -p 8129 user@host
trabajos.ssh-copy-id
no toma ningún argumento que pueda pasar alssh
comando subyacente , pero puede configurar un alias en~/.ssh/config
.Entonces corre
ssh-copy-id myhost
.fuente
-p
bandera en losssh
intentos regulares . Por lo tanto, no es solo la respuesta correcta a esta pregunta, es lo correcto, punto.A partir de openssh-client_6.2 ahora hay un indicador de puerto dedicado para el comando que permite esta sintaxis:
También agregó soporte para agregar otras opciones de ssh con el indicador -o.
Aquí está la página de manual de Ubuntu para la versión apropiada, presentada en 13.04: http://manpages.ubuntu.com/manpages/saucy/man1/ssh-copy-id.1.html
fuente
Un vistazo rápido a la fuente indica que
ssh-copy-id
parece no tener ninguna función que lo permita. Sin embargo, podría hacer algo como lo siguiente:fuente
Esto funciona (desde aquí ):
fuente
Siempre lo he
scp
copiado:Aunque debo decir, probablemente usaré los otros métodos (una línea / conexión) si los recuerdo en el futuro. Pero esta es otra opción para ti.
fuente
En CentOS7 es solo:
Tenga cuidado de no colocar user @ host dentro de las comillas o obtendrá el siguiente error en esta distribución:
fuente
Con mi macOS, esto funcionó.
fuente
Yo uso este comando:
ssh-copy-id ssh://user@ip_addr:port
Ejemplo:
ssh-copy-id ssh://[email protected]:23
fuente