web-dev-qa-db-fra.com

ssh config sous cygwin

Cygwin est installé sur Windows 7. J'ai installé par défaut. Je voudrais utiliser le fichier de configuration ssh (~/.ssh/config) pour définir l’hôte et les options de connexion.

La commande ssh normale ne parvient pas à trouver la configuration lorsque j'essaie de me connecter: ssh Host Si je spécifie explicitement le fichier de configuration, tout est OK: ssh -F ~/.ssh/config

Je ne trouve aucune option pour définir le client ssh, quelque chose comme/etc/ssh

Peut-être que ssh ne sait pas où se trouve mon dossier personnel? (J'ai défini la variable d'environnement HOME dans mon dossier personnel)

18
Hubidubi

Vous devez d'abord lancer ssh-Host-config. Il générera un fichier "ssh_config" dans /etc/.

17
user127350

J'ai eu le même problème. Je voulais utiliser ~/.ssh/config car j'utilisais déjà ce répertoire pour d'autres applications et je ne voulais pas conserver 2 copies. Donc, créer un répertoire /etc/ssh_config n'était pas la solution idéale.

Comme Fujimoto Youichi le mentionne, ssh regarde /etc/passwd pour votre répertoire personnel et non le $ HOME variable d'environnement.

Les versions actuelles de cygwin (j'utilise la version 2.6) ne crée plus /etc/passwd dans le cadre de l'installation. Cependant, il est facile d'en créer un nouveau:

    mkpasswd -c -p "$(cygpath -H)" > /etc/passwd
  • - c Ajoute l'utilisateur actuel au fichier passwd.
  • - p "$ (cygpath -H)" Ajoute votre répertoire de base actuel.

https://cygwin.com/cygwin-ug-net/mkpasswd.html contient plus de détails sur les drapeaux disponibles.

Je n'ai pas regardé le code, mais la préférence de ssh semble être:

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

Donc, si vous voulez seulement utiliser les informations de configuration de ssh depuis ~/.ssh/config , assurez-vous de les supprimer /etc/ssh_config .

Veillez également à ouvrir une nouvelle fenêtre de terminal cygwin après avoir apporté les modifications nécessaires à leur disponibilité.

4
kyleus

la commande ssh cherche son fichier de configuration dans le répertoire de base de/etc/passwd. Donc, paramétrer la variable HOME ne fonctionnera pas.

Il existe de nombreuses façons, mais nous pouvons le résoudre en créant simplement un lien symbolique comme suit.

l -s ~/home

1
Fujimoto Youichi

Selon la réponse acceptée, en utilisant la commande d'initialisation:

ssh-Host-config

Vous pouvez également créer un /etc/ssh_config vide dans Cygwin, qui fonctionnera de la même manière.

Le /etc/ssh_config créé par ssh-Host-config est également vide avec toutes les lignes de commentaires.


Rechargez SSH avec une nouvelle configuration:

Pour effectuer la configuration, vous pouvez simplement finir de modifier /etc/ssh_config sans redémarrer le service.

0
Nick Tsai

Cygwin ssh s'attend à ce que la configuration soit en /home/$USER. Mais le répertoire personnel "~" de cygwin est C:/Users/$USER, en effet /home est vide. Vous pouvez avoir à la fois C:/Users/$USER/.ssh et /home/$USER/.ssh des chemins valides, en créant un lien symbolique:

ln -s ~ /home/$USER
0
Mapad

Les autres réponses n'ont pas fonctionné pour moi. Je viens de créer c:\cygwin64\etc\ssh_config et de le coller dans le fichier par défaut/exemple suivant:

# 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

J'espère que cela aidera la prochaine personne.

0
Ryan Shillington

La réponse actuellement acceptée ne résout pas le problème pour moi. À la place, j'ai lié de manière symétrique le répertoire .ssh à partir du répertoire de base de mon compte d'utilisateur Windows dans le répertoire de base de mon utilisateur Cygwin:

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