Я использую 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, который он хотел.
@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
Прекрасно работает.