SSH не может создать каталог /home/USERNAME/.ssh

24247
adampski

Мой скрипт выполняет следующую команду:

command = os.system('rdiff-backup --exclude "**.dropbox**" --exclude "**.ini**" --remote-schema "ssh -o UserKnownHostsFile=/cygdrive/c/Users/Adam/.ssh/known_hosts -i /cygdrive/c/Users/Adam/.ssh/id_rsa %s -p1019 rdiff-backup --server" C:/Users/Adam/Dropbox pi@192.168.0.5::/mnt/disk1/Adam/Dropbox') 

Как вы можете видеть, я сказал ему, где искать папку known_hosts, и сказал, где находится ключ - без этих двух вопросов меня постоянно спрашивали бы о добавлении моего сервера к known_hosts при каждом выполнении и требовали ввода пароля для каждого выполнения. Это позор SSH не мог найти их самостоятельно, мое предположение, что он всегда работал с одной и той же директории, C:\Users\Adam\.ssh?

В любом случае, единственное сообщение об ошибке, которое я получаю сейчас, Could not create directory '/home/Adam/.ssh'- я проверил, что моя переменная HOME для моего текущего пользователя верна, но все еще не может найти папку .ssh. Сценарий выполняется без проблем, это просто надоедливое сообщение об ошибке. Я использую пакет SSH от Cygwin, я не уверен, насколько это важно? Кроме того, я сгенерировал .sshкаталог, используя файл ssh.exe Rsync, а не Cygwin. Это важно?

7

3 ответа на вопрос

11
adampski

I found the answer to my solutions in this blog post.

"First locate the file called passwd in your C:\path\to\cygwin\etc directory and open it with wordpad. Second, replace the text /home/YOUR_NAME with /cygdrive/c/Documents and Settings/YOUR_NAME Finally, save the file."


Update

Some people have reported that adding %USERPROFILE% as a value to a system variable called "HOME" works.

Msgstr "Доступ к C: \ cygwin \ etc \ passwd запрещен" (также пытался от имени администратора). Редактировать: сделал себя владельцем и дал себе разрешение. Работает сейчас etherous 9 лет назад 0
У меня та же проблема, но я не могу найти файл `passwd` Mhd.Tahawi 8 лет назад 3
Я думаю, вы могли бы сгенерировать один. "mkpasswd -l> / etc / passwd". Выполните это в терминале Cygwin bash, а не в cmd. adampski 8 лет назад 2
сгенерировал файл passwd с помощью mkpasswd, заменил упомянутый текст на новый, проблема все еще существует: невозможно найти путь /home/USER/.ssh maks 8 лет назад 2
Добавление переменной HOME в путь решило проблему для меня. ГЛАВНАЯ: C: \ yourusername Midhun VP 6 лет назад 1
Для меня, вручную создавая C: \ путь \ к \ cygwin \ home \ каталог сделал свое дело. NVM 6 лет назад 0
0
TT--

У меня была та же проблема, и мой $ HOME уже был установлен в% USERPROFILE%. Вот что сработало для меня:

Измените строку в файле /etc/nsswitch.confна:

db_home: windows cygwin desc 

(Из этого ответа)

-1
EoghanM

Согласно предложению @MidhunVP, эта ошибка была вызвана для меня через некоторое время после того, как я удалил переменную среды HOME.

Control Panel > Edit Environment Variables > New...  Variable Name: HOME Variable Value: C:\Users\YOUR_NAME 

Похожие вопросы