ssh використовує неправильний домашній каталог у Cygwin


12
$ ssh usaname@login.somehost.no

Could not create directory'/cygdrive/c/Documents and Settings/vidar kongsli/.ssh'.
The authenticity of host 'login.somehost.no (...)' can't be established.
RSA key fingerprint is ....
Are you sure you want to continue connecting (yes/no)? no
Host key verification failed.

$ set | grep HOME

HOME=/cygdrive/d/home/vidar
HOMEDRIVE=C:
HOMEPATH=/cygdrive/d/home/vidar

$ ls ~/.ssh

id_rsa  id_rsa.pub

Будь-яка ідея, чому ssh не використовує змінну середовища $ HOME, коли намагається знайти ~ / .ssh?

(редагувати: фіксоване форматування)

ssh  cygwin 

Відповіді:


9

Погляньте /etc/passwd. Переконайтесь, що запис там відповідає очікуваному домашньому каталогу. Це друге останнє поле для входу вашого користувача.


4

Якщо ваша $HOMEзмінна встановлена, але ssh не розпізнає її, введіть цей рядок у /etc/nsswitch.conf:

db_home: /%H

Це дозволить встановити домашній каталог Cygwin, не вимагаючи наявності файлу / etc / passwd.


Я встановив HOMEдля %USERPROFIEL%змінних оточення , перш ніж встановлений Cygwin. Отже ... / home / <myusername> не створено ( /etc/passwd cannot be found). Неможливо використовувати ключ ssh у% USERPROFILE%. db_home: /%Hвиправити проблему ідеально. Дуже дякую!
Марсло

2

В /etc/nsswitch.conf:

db_home:  windows

Див . Настройку db_home . Це говорить Cygwin просто використовувати %USERPROFILE%каталог Windows як Cygwin $ HOME.

Це необхідно, якщо, наприклад, ви хочете поділитися одними і тими ж ключами SSH між git (GitHub Enterprise) та SSH для різних локальних систем Unix / Linux.

Налаштування %HOME%на рівні ОС не спрацювало (навіть якщо $HOMEв bash правильно відображено налаштування).

З оригінального питання видно, що SSH намагається оновити домашній каталог Windows, який є у старшій версії Windows Vidar C:\Documents and Settings\vidar kongsli. У поточних версіях (7+, я думаю) еквівалент є C:\Users\%USERNAME%(або, якщо Windows не встановлено на C :, %SystemDrive%\Users\%USERNAME%).



0

Встановити db_homeв /etc/nsswitch.confна шляху до вашого будинку. Це метод, рекомендований MSYS2.

Додавання HOMEзмінної середовища також працює .

Git-for-Windows включає envв себе db_home, який повинен читати вашу HOMEзмінну bash, однак, це ненадійно .


1
Як редагувати? На що ви встановили db_home?
Ендрю Шульман

@AndrewSchulman До каталогу, який я хочу мати як свій домашній каталог?
VarunAgw

1
Оце Так! Це багато корисної інформації. Дякую за редагування @ go2null :)
VarunAgw

Ця відповідь насправді не містить переліку того, що рекомендує "рекомендована" пов’язана помилка. Пов’язаний помилок говорить:db_home: windows cygwin desc
Гордон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.