config ssh sotto cygwin


18

Ho Cygwin installato su Windows 7. Ho effettuato l'installazione predefinita. Vorrei usare il file di configurazione di ssh (~ / .ssh / config) per impostare l'host e le opzioni per la connessione.

Il normale comando ssh non è in grado di trovare la configurazione mentre provo a connettermi: host ssh Se specifico esplicitamente il file di configurazione, tutto è OK: ssh -F ~ / .ssh / config

Non riesco a trovare alcuna opzione per impostare il client SSH, qualcosa come / etc / ssh

Forse ssh non sa dov'è la mia cartella home? (Ho impostato la variabile di ambiente HOME sulla mia cartella home)

Risposte:


18

Devi prima eseguire ssh-host-config . Genererà un file "ssh_config" in / etc / .


4

Ho avuto lo stesso problema. Volevo usare ~ / .ssh / config perché stavo già usando quella directory per altre applicazioni e non volevo conservare 2 copie. Quindi la creazione di una directory / etc / ssh_config non era la soluzione ideale.

Come menziona Fujimoto Youichi, ssh guarda / etc / passwd per la tua directory home e non per la variabile d'ambiente $ HOME .

Le attuali versioni di Cygwin (sto usando 2.6) non creano più / etc / passwd come parte dell'installazione. Tuttavia, è facile crearne uno nuovo:

    mkpasswd -c -p "$(cygpath -H)" > /etc/passwd
  • -c Aggiunge l'utente corrente al file passwd
  • -p "$ (cygpath -H)" Aggiunge la tua home directory corrente

https://cygwin.com/cygwin-ug-net/mkpasswd.html ha maggiori dettagli sui flag disponibili.

Non ho guardato il codice, ma la preferenza di ssh sembra essere:

  1. / Etc / ssh_config
  2. ~ / .Ssh / config

Quindi se vuoi usare solo le informazioni di configurazione di ssh da ~ / .ssh / config , allora assicurati di eliminare / etc / ssh_config .

Inoltre, assicurarsi di aprire una nuova finestra del terminale cygwin dopo aver apportato le modifiche, affinché siano disponibili.


sembra che sia stato trasferito in / etc / defaults / ssh_config
VeraKozya il

1

Il comando ssh cerca il suo file di configurazione nella directory home da / etc / passwd. Quindi l'impostazione della variabile HOME non funzionerà.

Esistono molti modi, ma possiamo risolverlo semplicemente creando un collegamento simbolico come segue.

ln -s ~ / home


0

Le altre risposte non hanno funzionato per me. Ho appena creato c: \ cygwin64 \ etc \ ssh_config e incollato nel seguente file predefinito / esempio:

# 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

Spero che aiuti la prossima persona.


0

Secondo la risposta accettata, utilizzare il comando per inizializzare:

ssh-host-config

Puoi anche creare vuoti /etc/ssh_configin Cygwin, che funzionerà allo stesso modo.

Anche la /etc/ssh_configcreazione di ssh-host-configè vuota con tutte le righe di commento.


Ricarica SSH con la nuova configurazione:

Per effettuare la configurazione, puoi semplicemente terminare la modifica /etc/ssh_configsenza riavviare il servizio.


1
In cosa differisce dalla risposta accettata?
Greenonline,

Non posso commentarlo per spiegare ulteriormente il principio e come effettuare la configurazione SSH.
Nick Tsai,

Devi prima guadagnare una reputazione. Prova a modificare alcuni post formattati in modo
errato

OK! Ho pubblicato questa risposta perché dopo aver verificato la risposta accettata, ho fatto più sondaggi su di essa. Grazie.
Nick Tsai,

0

Cygwin ssh si aspetta che ci sia la configurazione /home/$USER. Ma la directory home "~" in cygwin è C:/Users/$USER, in effetti /homeè vuota. Puoi avere entrambi C:/Users/$USER/.sshed /home/$USER/.sshessere percorsi validi, creando un link simbolico:

ln -s ~ /home/$USER

0

La risposta attualmente accettata non ha risolto il problema per me. Invece ho collegato simbolicamente la .sshdirectory dalla home directory del mio account utente Windows alla home directory del mio utente Cygwin:

ln -s /cygdrive/c/Users/<MY-USER>/.ssh /home/<MY-USER>/.ssh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.