ssh config unter cygwin


18

Ich habe Cygwin unter Windows 7 installiert. Ich habe die Standardinstallation vorgenommen. Ich möchte die ssh-Konfigurationsdatei (~ / .ssh / config) verwenden, um den Host und die Verbindungsoptionen festzulegen.

Normaler ssh-Befehl kann die Konfiguration nicht finden, während ich versuche, eine Verbindung herzustellen: ssh host Wenn ich die Konfigurationsdatei explizit spezifiziere, ist alles in Ordnung: ssh -F ~ / .ssh / config

Ich kann keine Option zum Festlegen des SSH-Clients finden, so etwas wie / etc / ssh

Vielleicht weiß ssh nicht, wo sich mein Home-Ordner befindet? (Ich habe die Umgebungsvariable HOME auf meinen Basisordner gesetzt.)

Antworten:


18

Sie müssen zuerst ssh-host-config ausführen . Es wird eine "ssh_config" -Datei in / etc / erzeugt .


4

Ich hatte das gleiche Problem. Ich wollte ~ / .ssh / config verwenden, da ich dieses Verzeichnis bereits für andere Anwendungen verwendet habe und keine zwei Kopien verwalten wollte. Das Erstellen eines / etc / ssh_config- Verzeichnisses war daher nicht die ideale Lösung.

Wie Fujimoto Youichi erwähnt, sucht ssh in / etc / passwd nach Ihrem Home-Verzeichnis und nicht nach der Umgebungsvariablen $ HOME .

Die aktuellen Cygwin-Versionen (ich verwende 2.6) erstellen / etc / passwd nicht mehr als Teil der Installation. Es ist jedoch einfach, ein neues zu erstellen:

    mkpasswd -c -p "$(cygpath -H)" > /etc/passwd
  • -c Fügt den aktuellen Benutzer zur passwd-Datei hinzu
  • -p "$ (cygpath -H)" Fügt Ihr aktuelles Home-Verzeichnis hinzu

Unter https://cygwin.com/cygwin-ug-net/mkpasswd.html finden Sie weitere Informationen zu den verfügbaren Flags.

Ich habe mir den Code nicht angesehen, aber sshs Präferenz scheint zu sein:

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

Wenn Sie also nur die ssh-Konfigurationsinformationen aus ~ / .ssh / config verwenden möchten , müssen Sie / etc / ssh_config löschen .

Öffnen Sie nach dem Vornehmen von Änderungen unbedingt ein neues Cygwin-Terminalfenster, damit diese verfügbar werden.


Es scheint, als wäre es um
VeraKozya verlegt worden

1

Der Befehl ssh sucht nach seiner Konfigurationsdatei im Ausgangsverzeichnis von / etc / passwd. Daher funktioniert das Setzen der HOME-Variablen nicht.

Es gibt viele Möglichkeiten, die wir jedoch beheben können, indem Sie einfach einen Symlink wie folgt erstellen.

ln -s ~ / home


0

Die anderen Antworten haben bei mir nicht funktioniert. Ich habe gerade c: \ cygwin64 \ etc \ ssh_config erstellt und in die folgende Standard- / Beispieldatei eingefügt:

# 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,umac-64@openssh.com,hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#
#
Host *
    Port 22

Hoffe das hilft der nächsten Person.


0

Verwenden Sie gemäß der akzeptierten Antwort den Befehl zum Initialisieren von:

ssh-host-config

Sie können /etc/ssh_configin Cygwin auch eine leere Datei erstellen , die auf die gleiche Weise funktioniert.

Das /etc/ssh_configErstellen von ssh-host-configist auch mit allen Kommentarzeilen leer.


Laden Sie SSH mit neuer Konfiguration neu:

Um die Konfiguration durchzuführen, können Sie die Bearbeitung einfach abschließen, /etc/ssh_configohne den Dienst neu zu starten.


1
Wie unterscheidet sich dies von der akzeptierten Antwort?
Greenonline

Ich kann es nicht kommentieren, um das Prinzip weiter zu erklären und wie man die ssh-Konfiguration bewirkt.
Nick Tsai

Sie müssen sich zuerst einen guten Ruf verdienen. Versuchen Sie, einige schlecht formatierte Posts zu bearbeiten oder eine unbeantwortete Frage zu beantworten :-)
Greenonline,

IN ORDNUNG! Ich habe diese Antwort gepostet, da ich nach dem Überprüfen der akzeptierten Antwort mehr Umfragen durchgeführt habe. Vielen Dank.
Nick Tsai

0

Cygwin ssh erwartet, dass sich die Konfiguration in befindet /home/$USER. Aber das Home-Verzeichnis "~" in Cygwin ist C:/Users/$USERin der Tat /homeleer. Sie können beides haben C:/Users/$USER/.sshund /home/$USER/.sshgültige Pfade sein, indem Sie einen Symlink erstellen:

ln -s ~ /home/$USER

0

Die aktuell akzeptierte Antwort hat das Problem für mich nicht behoben. Stattdessen habe ich das .sshVerzeichnis aus dem Ausgangsverzeichnis meines Windows-Benutzerkontos mit dem Ausgangsverzeichnis meines Cygwin-Benutzers verknüpft :

ln -s /cygdrive/c/Users/<MY-USER>/.ssh /home/<MY-USER>/.ssh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.