ssh config bajo cygwin

18

Tengo Cygwin instalado en Windows 7. Realicé la instalación predeterminada. Me gustaría usar el archivo de configuración ssh (~ / .ssh / config) para configurar el host y las opciones de conexión.

El comando ssh normal no puede encontrar la configuración mientras intento conectarme: host ssh Si especifico explícitamente el archivo de configuración, todo está bien: ssh -F ~ / .ssh / config

No puedo encontrar ninguna opción para configurar el cliente ssh, algo como / etc / ssh

¿Quizás ssh no sabe dónde está mi carpeta de inicio? (He configurado la variable de entorno HOME en mi carpeta de inicio)

Hubidubi
fuente

Respuestas:

18

Primero debe ejecutar ssh-host-config . Generará un archivo "ssh_config" en / etc / .


fuente
4

Tuve el mismo problema. Quería usar ~ / .ssh / config porque ya estaba usando ese directorio para otras aplicaciones y no quería mantener 2 copias. Por lo tanto, crear un directorio / etc / ssh_config no era la solución ideal.

Como menciona Fujimoto Youichi, ssh busca en / etc / passwd su directorio personal y no la variable de entorno $ HOME .

Las versiones actuales de cygwin (estoy usando 2.6) ya no crean / etc / passwd como parte de la instalación. Sin embargo, es fácil crear uno nuevo:

    mkpasswd -c -p "$(cygpath -H)" > /etc/passwd
  • -c Agrega el usuario actual al archivo passwd
  • -p "$ (cygpath -H)" Agrega su directorio de inicio actual

https://cygwin.com/cygwin-ug-net/mkpasswd.html tiene más detalles sobre las banderas disponibles.

No he mirado el código, pero la preferencia de ssh parece ser:

  1. / etc / ssh_config
  2. ~ / .ssh / config

Entonces, si solo desea utilizar la información de configuración ssh de ~ / .ssh / config , asegúrese de eliminar / etc / ssh_config .

Además, asegúrese de abrir una nueva ventana de terminal cygwin después de hacer cambios, para que estén disponibles.

Kyleus
fuente
parece que se ha reubicado en / etc / defaults / ssh_config
VeraKozya
1

El comando ssh busca su archivo de configuración en el directorio de inicio desde / etc / passwd. Por lo tanto, configurar la variable HOME no funcionará.

Hay muchas formas, pero podemos solucionarlo simplemente haciendo un enlace simbólico de la siguiente manera.

ln -s ~ / inicio

Fujimoto Youichi
fuente
0

Las otras respuestas no me funcionaron. Acabo de crear c: \ cygwin64 \ etc \ ssh_config y lo pegué en el siguiente archivo predeterminado / de ejemplo:

# This is the ssh client system-wide configuration file.  See
# ssh_config(5) for more information.  This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line.

# Configuration data is parsed as follows:
#  1. command line options
#  2. user-specific file
#  3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.

# Site-wide defaults for some commonly used options.  For a comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   Port 22
#   Protocol 2,1
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#
#
Host *
    Port 22

Espero que ayude a la próxima persona.

Ryan Shillington
fuente
0

De acuerdo con la respuesta aceptada, use el comando para inicializar:

ssh-host-config

También puede crear vacíos /etc/ssh_configen Cygwin, que funcionará igual.

La /etc/ssh_configcreación por ssh-host-configtambién está vacía con todas las líneas de comentarios.


Recargar SSH con nueva configuración:

Para efectuar la configuración, puede terminar de editar /etc/ssh_configsin reiniciar el servicio.

Nick Tsai
fuente
1
¿Cómo difiere esto de la respuesta aceptada?
Greenonline
No puedo comentarlo para explicar más el principio y cómo efectuar la configuración ssh.
Nick Tsai
Primero debes ganar algo de reputación. Intenta editar algunas publicaciones mal formateadas o responde una pregunta sin respuesta :-)
Greenonline
¡OKAY! Publiqué esta respuesta porque después de verificar la respuesta aceptada, hice más encuestas sobre ella. Gracias.
Nick Tsai
0

Cygwin ssh espera que la configuración esté en /home/$USER. Sin embargo, el directorio principal "~" en cygwin es C:/Users/$USER, de hecho, /homeestá vacía. Puede tener ambas rutas C:/Users/$USER/.sshy /home/$USER/.sshser válidas, creando un enlace simbólico:

ln -s ~ /home/$USER
Mapad
fuente
0

La respuesta actualmente aceptada no me solucionó el problema. En su lugar, vinculé el .sshdirectorio desde el directorio de inicio de mi cuenta de usuario de Windows al directorio de inicio de mi usuario de Cygwin:

ln -s /cygdrive/c/Users/<MY-USER>/.ssh /home/<MY-USER>/.ssh
tiguchi
fuente