ssh config під cygwin


18

У мене встановлено Cygwin в Windows 7. Я зробив встановлення за замовчуванням. Я б хотів використовувати файл ssh config (~ / .ssh / config) для встановлення хоста та параметрів для підключення.

Звичайна команда ssh не в змозі знайти конфігурацію, коли я намагаюся підключитися: ssh host Якщо я чітко вказати файл config, все гаразд: ssh -F ~ / .ssh / config

Я не можу знайти жодного варіанту встановлення ssh-клієнта, такого як / etc / ssh

Можливо, ssh не знає, де моя домашня папка? (Я встановив змінну середовища HOME у своїй домашній папці)

Відповіді:


18

Спершу потрібно запустити ssh-host-config . Це створить файл "ssh_config" в / etc / .


4

У мене було те саме питання. Я хотів використовувати ~ / .ssh / config, оскільки я вже використовував цей каталог для інших програм і не хотів підтримувати 2 копії. Тож створення каталогу / etc / ssh_config не було ідеальним рішенням.

Як згадує Fujimoto Youichi, ssh розглядає / etc / passwd для вашого домашнього каталогу, а не змінну середовища $ HOME .

Поточні версії cygwin (я використовую 2.6) більше не створюють / etc / passwd як частину встановлення. Однак створити нове легко:

    mkpasswd -c -p "$(cygpath -H)" > /etc/passwd
  • -c Додає поточного користувача у файл passwd
  • -p "$ (cygpath -H)" Додає ваш поточний домашній каталог

https://cygwin.com/cygwin-ug-net/mkpasswd.html містить більш детальну інформацію про доступні прапори.

Я не переглянув код, але, здається, перевагу ssh:

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

Тож якщо ви хочете використовувати лише інформацію про конфігурацію ssh з ~ / .ssh / config , видаліть / etc / ssh_config .

Також не забудьте відкрити нове вікно терміналу cygwin після внесення змін, щоб вони стали доступними.


здається, він був переведений в / etc / defaults / ssh_config
VeraKozya

1

Команда ssh шукає свій конфігураційний файл під домашнім каталогом з / etc / passwd. Тож встановлення змінної HOME не працюватиме.

Є багато способів, але ми можемо це виправити, просто створивши символьне посилання наступним чином.

ln -s ~ / додому


0

Інші відповіді не спрацювали для мене. Я щойно створив c: \ cygwin64 \ etc \ ssh_config і вставив у такий файл за замовчуванням / приклад:

# 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

Сподіваюся, що допоможе наступній людині.


0

Відповідно до прийнятої відповіді, використовуючи команду для ініціалізації:

ssh-host-config

Ви також можете створити порожній /etc/ssh_configу Cygwin, який буде працювати так само.

/etc/ssh_configСтворення з допомогою ssh-host-configтакож спорожнити з усіма коментарями з ліній.


Перезавантажте SSH за допомогою нового конфігурації:

Щоб виконати конфігурацію, ви можете просто закінчити редагування /etc/ssh_configбез перезавантаження служби.


1
Чим це відрізняється від прийнятої відповіді?
Greenonline

Я не можу коментувати це для подальшого пояснення принципу та способів здійснення ssh config.
Нік Цай

Потрібно спочатку заробити репутацію. Спробуйте відредагувати неправильно відформатовані публікації або відповісти на відповідь без відповіді :-)
Greenonline

ДОБРЕ! Я опублікував цю відповідь, тому що перевіривши прийняту відповідь, я зробив більше опитування щодо неї. Дякую.
Нік Цай

0

Cygwin ssh очікує, що в ньому буде конфігурація /home/$USER. Але домашній каталог "~" у cygwin C:/Users/$USERдійсно /homeпорожній. Ви можете мати обоє C:/Users/$USER/.sshта /home/$USER/.sshбути дійсними шляхами, створивши символьне посилання:

ln -s ~ /home/$USER

0

На даний момент прийнята відповідь не усунула проблеми для мене. Натомість я зв'язав .sshкаталог із домашнього каталогу свого облікового запису користувача Windows у свій домашній каталог Cygwin:

ln -s /cygdrive/c/Users/<MY-USER>/.ssh /home/<MY-USER>/.ssh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.