Конфигурация SSH под Cygwin

18

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

Обычная команда ssh не может найти конфигурацию, пока я пытаюсь подключиться: ssh host Если я явно указываю файл конфигурации, все в порядке: ssh -F ~ / .ssh / config

Я не могу найти никакой опции для установки клиента ssh, что-то вроде / etc / ssh

Может быть, ssh не знает, где находится моя домашняя папка? (Я установил переменную среды HOME в мою домашнюю папку)

Hubidubi
источник

Ответы:

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. / И т.д. / ssh_config
  2. ~ / .Ssh / конфигурации

Поэтому, если вы хотите использовать только информацию о конфигурации ssh из ~ / .ssh / config , обязательно удалите / etc / ssh_config .

Кроме того, после внесения изменений обязательно откройте новое окно терминала Cygwin, чтобы они стали доступны.

kyleus
источник
кажется, он был перемещен в / etc / defaults / ssh_config
VeraKozya
1

Команда ssh ищет свой конфигурационный файл в домашнем каталоге из / etc / passwd. Поэтому установка переменной HOME не будет работать.

Есть много способов, но мы можем это исправить, просто сделав символическую ссылку следующим образом.

ln -s ~ / home

Фуджимото Юичи
источник
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.
Ник Цай
Вы должны заработать репутацию в первую очередь. Попробуйте отредактировать некоторые плохо отформатированные сообщения или ответить на
оставшийся
OK! Я опубликовал этот ответ, потому что, проверив принятый ответ, я провел больше опросов по нему. Спасибо.
Ник Цай
0

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

ln -s ~ /home/$USER
Mapad
источник
0

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

ln -s /cygdrive/c/Users/<MY-USER>/.ssh /home/<MY-USER>/.ssh
tiguchi
источник