SSH konnte das Verzeichnis /home/USERNAME/.ssh nicht erstellen

24306
adampski

Mein Skript führt den folgenden Befehl aus:

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') 

Wie Sie sehen, habe ich ihm gesagt, wo er nach dem Ordner known_hosts suchen muss, und ihm gesagt, wo sich der Schlüssel befindet. Ohne diese beiden Fragen würde ich ständig gefragt, ob ich meinen Server zu jedem bekannten Exec_hosts hinzufügen und jedes Passwort eingeben muss für jede Ausführung. Es ist eine Schande, dass SSH diese nicht unabhängig finden konnte. Ich gehe davon aus, dass es immer vom selben Verzeichnis aus funktioniert C:\Users\Adam\.ssh.

Die einzige Fehlermeldung, die ich jetzt bekomme, ist Could not create directory '/home/Adam/.ssh'- Ich habe sichergestellt, dass meine HOME-Variable für meinen aktuellen Benutzer korrekt ist, aber den .ssh-Ordner immer noch nicht zu finden scheint. Das Skript führt kein Problem aus, es handelt sich lediglich um diese nervige Fehlermeldung. Ich verwende das SSH-Paket von Cygwin. Ich bin nicht sicher, wie wichtig dies ist. Außerdem habe ich das .sshVerzeichnis mit der Datei ssh.exe von Rsync erstellt, nicht mit Cygwin. Ist das wichtig?

7

3 Antworten auf die Frage

11
adampski

Ich habe die Antwort auf meine Lösungen in diesem Blogpost gefunden .

" Suchen Sie zuerst die aufgerufene Datei passwdin Ihrem C:\path\to\cygwin\etcVerzeichnis und öffnen Sie sie mit Wordpad. Zweitens ersetzen Sie den Text /home/YOUR_NAMEmit /cygdrive/c/Documents and Settings/YOUR_NAME. Speichern Sie die Datei anschließend."


Aktualisieren

Einige Leute haben berichtet, dass das Hinzufügen von% USERPROFILE% als Wert zu einer Systemvariablen namens "HOME" funktioniert.

"Zugriff auf C: \ cygwin \ etc \ passwd wurde verweigert" (auch als Administrator versucht). Edit: Hat mich zum Besitzer gemacht und mir die Erlaubnis gegeben. Funktioniert jetzt etherous vor 9 Jahren 0
Ich habe das gleiche Problem, aber ich kann die `passwd'-Datei nicht finden Mhd.Tahawi vor 8 Jahren 3
Ich denke, du könntest eins erzeugen. "mkpasswd -l> / etc / passwd". Führen Sie das in Cygwin bash terminal aus, nicht in cmd. adampski vor 8 Jahren 2
Passwd-Datei mit mkpasswd generiert, besagter Text durch neuen ersetzt, Problem existiert noch: Pfad /home/USER/.ssh kann nicht gefunden werden maks vor 8 Jahren 2
Das Hinzufügen einer HOME-Variablen in den Pfad löste das Problem für mich. HOME: C: \ IhrBenutzername Midhun VP vor 6 Jahren 1
Für mich manuell ein C: \ Pfad \ zu \ Cygwin \ Home \ erstellen Verzeichnis hat den Trick gemacht. NVM vor 6 Jahren 0
0
TT--

I had the same problem and already had my $HOME set to %USERPROFILE%. This is what worked for me:

Change the the line in the file /etc/nsswitch.conf to:

db_home: windows cygwin desc 

(From this answer)

-1
EoghanM

As per @MidhunVP suggestion, this error was triggered for me some time later after I had removed the HOME environment variable.

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