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
?
ssh
lo intentaid_rsa
antes deid_dsa
- lo que significa que está utilizando los archivos de identidad predeterminados, no el que usted señaló.ssh_config
archivo ubicado?ssh_config
sería/cygdrive/f/progs/OpenSSH/etc/ssh_config
hastassh
se preocupassh_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?Respuestas:
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.fuente
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.
fuente
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.fuente
ssh_config
es no relacionado alsshd
demonio (que usasshd_config
).