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

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

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

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

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

Si lo hago ssh username@hostnamefunciona.

Intentar usar ssh_configsolo 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 usernameen ssh_configdebería funcionar.

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

Respuesta1

En realidad, el problema es que OpenSSH busca 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 la configuración en ~/.ssh/configsu lugar.

Respuesta2

Para cualquiera que se encuentre con esto y quede atrapado en Windows, el equivalente de Windows en cygwin para la ubicación de su carpeta .ssh no es el directorio $HOME que especificó en su entorno. La ruta que utiliza cygwin openssh es /home/nombredeusuario/.ssh :(

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

Respuesta3

Normalmente, las configuraciones de usuario personalizadas deberían ir en ~/.ssh/configy no en /etc/ssh/config. /etc/ssh/configes para cambios en todo el sistema.

información relacionada