He estado luchando con esto durante un par de horas, por lo que cualquier ayuda es muy apreciada ...
Tengo 2 servidores que puedo usar ssh
con claves públicas de OSX, no hay problemas, así que estoy seguro de que todo está bien sshd_config
.
Estoy tratando de configurar un trabajo cron para rsync
sincronizar los dos servidores y necesito el servidor B (copia de seguridad) ssh
en el servidor A usando una clave pública.
Por mi vida no puedo entender por qué no encuentra mis claves públicas: están en ~/.ssh/
(es decir /root/.ssh
) y todos los permisos de archivo son correctos en A y B.
Esta es la salida:
debug2: we did not send a packet, disable method
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug3: no such identity: /root/.ssh/identity
debug1: Trying private key: /root/.ssh/id_rsa
debug3: no such identity: /root/.ssh/id_rsa
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
También tenga en cuenta que está buscando claves privadas que no existen ...
drwx------. 2 root root 4096 May 25 10:15 .
dr-xr-x---. 4 root root 4096 May 24 18:52 ..
-rw-------. 1 root root 403 May 25 01:37 authorized_keys
-rw-------. 1 root root 0 May 25 01:41 config
-rw-------. 1 root root 1675 May 25 02:35 id_rsa_tm1
-rw-------. 1 root root 405 May 25 02:35 id_rsa_tm1.pub
-rw-------. 1 root root 395 May 25 02:36 known_hosts
ssh
key-authentication
Danny
fuente
fuente
ls -la /root/.ssh/
_tm1
su nombre de archivo clave (es decir,mv id_rsa_tm1 id_rsa
emv id_rsa_tm1.pub id_rsa.pub
)Respuestas:
Echa un vistazo a tu página de manual de ssh:
o la página del comando man ssh_config:
Verá, hay algunos nombres de archivo especiales que se prueban si no especifica una clave. Esos también son los archivos que ve en su salida de registro.
Para usar una clave en un archivo con un nombre diferente, tiene tres opciones:
-i
opción anterior .IdentityFile
opción anterior .ssh-add
.Para sesiones interactivas, el agente es el más flexible. Para su trabajo cron, la
-i
opción es probablemente la más fácil.fuente
Un archivo de claves autorizadas con formato incorrecto en el host de destino es otra razón por la que ssh genera el mensaje "no enviamos un paquete" y solicita una contraseña en lugar de utilizar la autenticación de clave pública:
El problema en este caso particular era que los datos de clave pública, que se habían pegado en
.ssh/authorized_keys
el host de destino, faltaban su primer carácter:La solución fue simplemente agregar la "s" que faltaba.
Y entonces:-
fuente
Esta cadena exacta de mensajes de error en la pregunta también puede ocurrir en el caso de un par de claves privadas / públicas mal coincidentes en el lado local . No, eso no tiene ningún sentido, pero me arranqué el pelo durante mucho tiempo tratando de descubrir qué estaba pasando.
.ssh/mykey.pub
copiado.ssh/authorized_keys
..ssh/mykey
la clave privada correcta para que coincida con la clave pública del sistema A, pero también tiene un.ssh/mykey.pub
archivo que es una coincidencia incorrecta , posiblemente la versión anterior de una clave reemplazada.SSH de B a A (
ssh -i mykey A
) fallará con los mensajes en la pregunta, sobre todo si enciende-vv
desde el cliente ssh verá:Esto es una mentira porque la clave real no se probó, aparentemente utilizó el archivo de clave pública local con el nombre correspondiente para determinar si era probable que funcionara y luego no hizo nada cuando no coincidían. Ninguna cantidad de información de depuración en ambos lados realmente sugiere el problema.
fuente
Los nombres de archivo predeterminados que ssh está buscando son
id_rsa
yid_rsa.pub
.Si desea utilizar otros nombres de archivo, debe especificarlos en
ssh_config
(usando laIdentityFile
configuración) o mediante el parámetro de línea de comando ssh-i
.fuente
Tuve el mismo problema en RedHat; revisó los registros y descubrió que el directorio de inicio tenía derechos de usuario incorrectos.
sshd[2507]: Authentication refused: bad ownership or modes for directory /home/user
La fijación de los derechos de directorio de inicio resolvió esto.
fuente
~/.ssh
dir. Al menos en Fedora 28 cuando los~/.ssh
permisos eran 0775, no pude conectarme con claves públicas / privadas. Así que cambié los permisos a 0755 y trabajé como un encanto :)Una forma sencilla de depurar en Debian / Ubuntu es: conectarse con contraseña y seguir el registro
Intente conectarse desde otro terminal y verá el error ...
En mi caso, el directorio / root era 770 y no 700, que es el valor predeterminado. El error fue "Autenticación rechazada: propiedad o modos incorrectos para el directorio / root"
Arregla esto y listo.
fuente
Tratar
Un posible problema con el contexto de venta
fuente
despues de correr
ssh-copy-id user@remote-host
Normalmente debería funcionar. Pero si falla, intente esto: inicie sesión en el host remoto como el usuario que desea iniciar sesión en el futuro y ejecute:
Me ayudó.
fuente
Entonces, lo que me sucedió es que tengo 2 máquinas virtuales para acceder desde mi máquina local (2 claves id_rsa.pub e id_rsa2.pub). Me di cuenta de que mi conexión ssh está usando id_rsa.pub por defecto para cualquier conexión ssh [email protected]. Resolví mi problema agregando un archivo de configuración y especifico la identidad que se utilizará para cada host de la siguiente manera:
fuente
cliente:
fuente