Назад | Перейти на главную страницу

cygWin подключается по SSH с использованием ключа RSA; ssh.exe не может создать /home/user/.ssh

Я использую Win XP и пытаюсь подключиться по SSH к удаленному хосту с помощью ключа RSA.

Я исследовал, что cygWin распознает Документы и настройки dir как домашний каталог

Z:\app\cwRsync\bin>cygpath -H
/cygdrive/c/Documents and Settings

Я создал каталог .ssh в Документы и настройки / пользователь / .ssh и переехал known_hosts, id_rsa, id_rsa.pub там.

Теперь я пытаюсь подключиться через ssh.exe к удаленному хосту

Z:\app\cwRsync\bin>ssh -p 22 myuser@remotehost.com
Could not create directory '/home/user/.ssh'.
The authenticity of host '[remotehost.com]:22 ([remotehost.com]:22)' can't be established.
RSA key fingerprint is f7:f4:2c:e0:c6:7e:d2:a4:45:70:63:df:bf:f2:84:46.
Are you sure you want to continue connecting (yes/no)?

Что я делаю не так? Почему ssh.exe не может создать каталог /home/user/.ssh?

Спасибо.

Попробуйте изменить разрешения для .ssh на 700. Это связано с тем, что .ssh - это конфиденциальный каталог, в котором хранятся закрытые ключи.

Еще одна вещь, которую стоит попробовать, это ln -s /cygdrive/c/Documents\ and\ Settings /home, таким образом, поиск в / home будет перенаправлен на документы и настройки.

Ой ... Часы, которые я потратил на это тоже ...

Для меня решение было: установить переменную среды пользователя Windows с именем HOME, которая указывает на% USERPROFILE%

По-видимому (вид черного ящика) это позволяет переменной среды cygwin $ HOME чисто разрешаться в переменную Windows% USERPROFILE%, и все выходит в смывке. Это также сохранит всю безопасность Windows для профиля пользователя, что делает его лучшим решением, которое я видел (... и в последнее время я видел несколько из них!)

Предложение найдено по адресу: http://hrivera99.blogspot.com.au/2013/09/openssh-failed-to-add-hosts-to-list-of.html

Надеюсь, это сэкономит другим людям несколько часов жизни!

В папке Documents and Settings на локальном компьютере создайте папку home\<user>. По какой-то причине cwRsync не создает эти папки за вас. Я не менял свой cygpath, поэтому создал свой в C:\Program Files\cwRsync\home\<user>.

Я решил проблему на моем ноутбуке Win7, создав соединение каталогов. Откройте командный инструмент с правами администратора и выполните команду:

mklink /j "C:\Program Files (x86)\cwRsync\home" "c:\Users"

Причина:

ssh ожидает каталог /home/user_name/.ssh cygwin, который является каталогом Windows C: \ Program Files (x86) \ cwRsync \ home \ user_name.ssh, заданным

cygpath -w /home/user_name/.ssh

Пользователи Windows ожидают, что его домашний каталог находится в каталоге Users: C: \ Users \ user_name Ссылка из C: \ Program Files (x86) \ cwRsync \ home на C: \ Users делает уловку.

Примечание. Это также может работать с символической ссылкой: mklink / d, но я ее не тестировал.

Он не может его создать, потому что он уже создан. Я подозреваю проблему с разрешениями. Какие разрешения на ~, ~/.ssh и файлы в ~/.ssh?

Это работает для меня

проверьте это раньше:

echo %HOME%
echo %USERPROFILE%

а потом:

set HOME=%USERPROFILE%
rsync .....

Я решил это предупреждение, создав 2 новые папки внутри моего cwrsync папка.

<CWRSYNC FOLDER>/home/<USERNAME>

(Сначала создайте home а затем создайте подпапку для своего имени пользователя.)

Вы также можете создать соединение каталогов (похожее на символическую ссылку) на ваш C:\Users\USERNAME папку, см. ответ @ zizou13 о том, как это сделать.

Я просто создал каталог home / admin, который он хотел.

go.cmd

@ECHO OFF
SETLOCAL
SET PATH=c:\rsynclibrary\bin;c:\rsynclibrary\lib
mkdir c:\rsynclibrary\home
mkdir c:\rsynclibrary\home\admin
c:
cd \rsynclibrary
rsync -rtve "ssh -i ssh_key" --include-from=library.txt /cygdrive/c/ ...

ssh создает каталог .ssh и создает известные_хосты в c: \ rsynclibrary \ home \ admin \ .ssh

Прекрасно работает.