¿Por qué OpenSSH no usa el usuario especificado en ssh_config?

1

Estoy usando OpenSSH de una máquina con Windows para conectarme a una caja de Linux Mint 9. Mi nombre de usuario de Windows no coincide con el nombre de usuario de ssh target, por lo que estoy tratando de especificar qué usuario usar para iniciar sesión usando ssh_config. Sé que OpenSSH puede ver el ssh_config archivo ya que estoy especificando el archivo de identificación en él.

La sección específica para el host en ssh_config es:

  Host hostname
    HostName      hostname
    IdentityFile  ~/.ssh/id_dsa
    User          username
    Compression   yes

Si lo hago ssh username@hostname funciona.

Tratando de usar ssh_config solo da:

F:\>ssh -v hostname
OpenSSH_5.6p1, OpenSSL 0.9.8o 01 Jun 2010
debug1: Connecting to hostname [XX.XX.XX.XX] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /cygdrive/f/progs/OpenSSH/home/.ssh/id_rsa type -1
debug1: identity file /cygdrive/f/progs/OpenSSH/home/.ssh/id_rsa-cert type -1
debug1: identity file /cygdrive/f/progs/OpenSSH/home/.ssh/id_dsa type 2
debug1: identity file /cygdrive/f/progs/OpenSSH/home/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3p1 Debia
n-3ubuntu5
debug1: match: OpenSSH_5.3p1 Debian-3ubuntu5 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'hostname' is known and matches the RSA host key.
debug1: Found key in /cygdrive/f/progs/OpenSSH/home/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /cygdrive/f/progs/OpenSSH/home/.ssh/id_rsa
debug1: Offering DSA public key: /cygdrive/f/progs/OpenSSH/home/.ssh/id_dsa
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

Tenía la impresión de que (como se describe en esta pregunta: ¿Cómo hacer que ssh inicie sesión como el usuario correcto? ) especificando User username en ssh_config Deberia trabajar.

¿Por qué OpenSSH no usa el nombre de usuario especificado en ssh_config?

Jordan Evens
fuente
No lo hace no Ver la configuración. Date cuenta cómo ssh lo intenta id_rsa antes de id_dsa - lo que significa que está utilizando los archivos de identidad predeterminados, no el que usted señaló.
grawity
Donde Esta tu ssh_config archivo ubicado?
grawity
Cierto. No me había dado cuenta de eso. los ssh_config sería /cygdrive/f/progs/OpenSSH/etc/ssh_config hasta ssh se preocupa
Jordan Evens
Proceso de copiar ssh_config de allí a /cygdrive/f/progs/OpenSSH/home/.ssh/config arreglado. La pregunta ahora es: ¿qué hago con esta pregunta ahora que se ha demostrado que se basa en suposiciones incorrectas? ¿Tiene sentido modificar esta pregunta en "¿Por qué OpenSSH no usa mi archivo de configuración?" ¿Y tiene una respuesta sobre cómo no estaba en el lugar correcto? ¿O debería mirar eliminar la pregunta?
Jordan Evens
@Jordan: Creo que el procedimiento habitual es publicar sus hallazgos y la solución como una respuesta, y luego aceptarlo. Puedes revisar meta para más información.
grawity

Respuestas:

2

El problema es que OpenSSH está buscando la configuración en ~/.ssh/config (que se expande a /cygdrive/f/progs/OpenSSH/home/.ssh/config ) y no en /cygdrive/f/progs/OpenSSH/etc/ssh_config.

Coloque los ajustes en ~/.ssh/config en lugar.

Jordan Evens
fuente
1

Para cualquiera que se encuentre con esto, y esté atrapado en Windows, las ventanas equivalen a cygwin para la ubicación de su carpeta .ssh no es el directorio $ HOME que especificó en su env. La ruta que usa cygwin openssh es /home/username/.ssh :(

Mi solución fue eliminar el directorio / home / username y, en su lugar, un enlace simbólico al directorio de inicio real (el directorio al que "cd ~" cambia). Buena suerte.

rgiar
fuente
0

Normalmente, las configuraciones de usuario personalizadas deben ir en ~/.ssh/config y no en /etc/ssh/config. /etc/ssh/config Es para cambios en todo el sistema.

John T
fuente
1
ssh_config es no relacionado al sshd demonio (que usa sshd_config ).
grawity