Möglichkeit? Linux redet mit Windows?

Test

Ich hab jetzt auf meinem Windows Server cwRsync und auf meinem SLES 11 "Client" rsync installiert. Will jetzt also den Inhalt des Ordners /home/administrator/sync in den ordner C:\test\ synchronisieren bzw. kopieren.

Ich habe mit ssh-keygen einen Schlüssel erstellt, also eine id_rsa und ein id_rsa.pub die beide im Ordner /home/administrator/.ssh liegen. Diese wurden ohne Passphrase generiert. (Warum soll man das eigentlich so machen???)
Bei Windows liegt dieselbe id_rsa.pub direkt in C:\

Nun, da ich diesem Artikel gefolgt bin: http://www.it-pulse.eu/2009/03/backup-mit-cwrsync.html
habe ich die cwrsync.cmd entsprechend angepasst (folgende Zeilen habe ich hinzugefügt):
Code:
rsync -e "ssh -c blowfish -i c:\id_rsa.pub -av chmod u+rwx -r administrator@10.1.2.20:/home/administrator/sync /cygdrive/c/test

Allerdings habe ich keine Ahnung, wie es nun weitergeht. Mir kommt es schon sehr seltsam vor, dass ich gerade die Datei verändern soll, da diese ja auf den Server liegt, der die aktuellen Daten erhalten soll. Außerdem sehe ich keine aktive Präsenz von cwrsync, sprich keinen gestarteten Dienst, der sich um die Anfragen kümmert...
Ich glaube ich verstehe einiges grundlegendes zu rsync nicht....

EDIT//
Achso btw.: wenn ich die cwrsync.cmd aufführe kommt folgende Meldung:
Unexpected remote arg: administrator@10.1.2.20:/home/administrator/sync
rsync error: syntax or usage error......

Mir ist klar, dass da was mit dem Syntax nicht stimmt, aber was? Habe leider kein passenderes Beispiel gefunden.
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Da ich immer noch nicht weiß, wie das mit den administrativen Freigaben wird (ob wir diese nun freigeben können oder nicht), können wir das Thema, wie ich diese ausnutze, erstmal sein lassen.
Ok, aber nur zur Info, diese brauchst du nicht freigeben, sind sind es schon. Es ist nur noch die Frage, ob es dir erlaubt wird darauf zuzugreifen.

Ich brauche kein rsync, wenn die Synchronisation in dem Fall auch mit einem einfachen Script durchgeführt werden kann. Außerdem, wenn es wirklich stimmt, dass CIFS seine Daten unverschlüsselt überträgt und es nicht möglich ist eine verschlüsselte Verbindung einzurichten, ist CIFS sowieso vom Tisch.
Wenn auf jeden Fall eine verschlüsselte Verbindung zum Einsatz kommen soll, klappt das Thema mit administrativen Freigaben nicht. Ausßerdem kommst du nicht um die Installation von Software auf den Windows Rechnern herum
Ich habe mit ssh-keygen einen Schlüssel erstellt, also eine id_rsa und ein id_rsa.pub die beide im Ordner /home/administrator/.ssh liegen. Diese wurden ohne Passphrase generiert. (Warum soll man das eigentlich so machen???)
Wenn du ein Kopieren der Daten ohne Passworteingabe ermöglichen willst, musst du die Schlüssel generieren und dem Client diese mitteilen und sagen, dass der Zugriff ohne Passwort erlaubt ist. Dafür sind aber noch mehr Schritte notwendig als du bisher getan hast. Wenn du mit einer Passworteingabe leben kannst, kannst du jetzt auch alles lassen wie es ist.

Code:
rsync -e "ssh -c blowfish -i c:\id_rsa.pub -av chmod u+rwx -r administrator@10.1.2.20:/home/administrator/sync /cygdrive/c/test
Das Anführungszeichen steht etwas seltsam da (kein Abschließendes zu sehen...). Ausserdem kommt mir der chmod Aufruf spanisch vor, lass den mal komplett raus. Und dann hast du jetzt noch 3 Quellen bzw. zeiel angegeben, das geht so nicht. Eine Quelle und ein Ziel und zwar in der Reihenfolge Quelle - Ziel wäre richtig.
Mach mal einen einfachen Test für den Anfang, zum Beispiel:

rsync administrator@10.1.2.20:/home/administrator/sync /cygdrive/c/test
 
Danke!

Aber bei ssh steh ich noch ein wenig auf dem Schlauch. Das liegt hauptsächlich daran, dass ich nicht weiß, wo ich die Keys hinkopieren soll. Überall liest man was anderes.
Mal in einzelnen Datei in den Ordner /home/administrator/.ssh mal in demselben Ordner in eine Datei authorized_keys. Bei dem Windows Client irgendwo hin...???

Wenn ich jetzt den Befehl ausführe (hab ihn so genommen wie stronzo geschrieben hat) kommt die Meldung:
The authencity of host '10.1.2.20 <10.1.2.20>' can't be established.
RSA key fingerprint is XX:XX:XX:XX:XX:XX ...... .
Are you sure you want to continue connecting <yes/no>?
Da ich mir nicht sicher bin, habe ich hier abgebrochen. Ich denke, wenn ssh richtig konfiguriert wäre, würde die Meldung nicht kommen.

Weis jemand wo ich die keys hinpacken soll?
 
Die Meldung ist völlig normal beim ersten Verbindungsversuch zu einem anderen Rechner. Bestätige mit Ja und du siehst sie erstmal für eine Weile nicht wieder. Danach wird er dich nach dem Passwort der Clientmaschine Fragen. Wenn du wie gesagt komplett passwortlos arbeiten willst, dann z.B. mal hier schauen (es gibt tausend Tutorials dazu):
http://onlyubuntu.blogspot.com/2008/05/how-to-create-passwordless-ssh.html

Wichtig ist, dass du die Keys als der User erstellst, der sich nachher auch passwortlos einloggen können soll!
 
Okay dann lag ich doch falsch. ^^

Aber wie du schon gesagt hast, es gibt tausende. Zwischenzeitlich bin ich nach dem hier vorgegangen http://www.tux.org/~tbr/rsync/rsynchowto.html (What about Windows Clients?)
Aber da wird mir wieder gesagt, ich erstelle einen rsa und einen dsa key. Der Backup Server bekäme die beiden Publics. (Bei mir ist es grad andersrum)
Diese sitzen wieder in der authorized_keys und diese hat die rechte 600 administrator users.
Ich kann nun keinem Tutorial eindeutig entnehmen, welcher Rechner welche Keys bekommt. (Da ich ja hier noch mit Windows arbeite.)

Wenn ich jetzt meine cwrsync.cmd ausführe und den Host Fingerprint hinzufüge passiert eine Weile nichts und es kommt die Meldung:
skipping directory sync

Ich weiß, schwieriger Fall. :heul:

---------- Beitrag hinzugefügt um 07:52 ---------- Vorheriger Beitrag war um 07:50 ----------

Achso: Nach einem Passwort hat er mich bisher auch nicht gefragt. o_O
 
Das System auf dass du zugreifen willst, bekommt die public keys, dein Programm braucht die private keys...

Warum kann man nem key nochmals ein Passwort geben? Nun, dann kann man auch mal irgendwo seinen key liegen lassen (irgendwelche Server wo mehrere Leute Zugriff haben) ohne dass damit gleich jeder auf alle Systeme kommt bei denen der passende public key in der authorized_keys(2) ist. Mag jetzt erscheinen als wenn man ein Passwort durch keys ersetzt, sich dabei aber wieder ein neues Passwort einhandelt, ist aber nicht so. Man kann als putty wie auch als OpenSSH Nutzer den key einmal zu beginn der täglichen Arbeit in den putty-agent laden, gibt dass Passwort ein und braucht das nicht mehr zu machen bis der Agent neu gestartet wird, das ist im Grunde genommen ein Komfortfeature :) Ohne Passwort kann aber niemand etwas mit dem Key anfangen...

Im professionellen Umfeld wird PermitRootLogin in /etc/ssh/sshd_config gern auf without-password oder forced-commands-only gesetzt. Ersteres erlaubt die Anmeldung als root nur mit keys, das zweite nur mit keys und wenn ein bestimmter Befehl ausgeführt werden darf. Mit normaler Passwort Authentifizierung kommt man meist nicht weit...

Zwischen Unixoiden die OpenSSH nutzen lässt sich der public-key am einfachsten mittels ssh-copy-id user@system verteilen...
 
Okay, das hab ich verstanden. :)

..und mal einen anderen Ansatz verfolgt. Ich habe auf meinem Windows-Testserver "OpenSSH for Windows installiert" und als Server eingerichtet.
Nun möchte ich von meiner Linux-Machine aus, connecten.

Habe meine sshd_config entsprechend angepasst:
Code:
PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile	/etc/authorized_keys
PasswordAuthentication no
Habe prophylaktisch zwei Key-Paare erstellt:
linux_key + linux_key.pub
windows_key + windows_key.pub
Alle wurden ohne ein Passwort erstellt.
Vermutlich werde ich nur ein Paar brauchen, wenn ich mich mit dem Server verbinde.
Wie verteile ich jetzt die Keys? Welcher Rechner bekommt welche Datei und wohin? Und muss das in der ssh_config noch festgelegt werden?

Bitte mal für Langsame, da ich überall was anderes lese. :(

---------- Beitrag hinzugefügt um 09:28 ---------- Vorheriger Beitrag war um 08:32 ----------

Okay damit funktionierts auch. o_O

$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-system
$ ssh-copy-id -i ~/.ssh/id_dsa.pub user@remote-system

Bekomm jetzt zwar immer noch eine Passwortabfrage (keine Passphrase-!) aber darum kümmer ich mich noch.

---------- Beitrag hinzugefügt um 10:02 ---------- Vorheriger Beitrag war um 08:32 ----------

Neuer Test:
scp test.conf administrator@domaene.de:/cygdrive/c/
..kopiert die test.conf tatsächlich in C:\
Also hätte ich die erste Hürde ja fast geschafft, doch jetzt kommt das ABER:
Der SSH-Server verlangt immernoch nach dem Passwort.
 
Zuletzt bearbeitet:
Habe meine sshd_config entsprechend angepasst:
Code:
PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile	/etc/authorized_keys
PasswordAuthentication no

sshd_config: Konfigurationsdatei für den SSH-Server
ssh_config: Konfigurationsdatei für den SSH-Client

Wenn du von deinem Rechner aus irgendwo hin connectest, bist du der Client, Einstellungen in der sshd_config wirken sich also nicht aus (bzw. haben garnichts damit zu tun).
Um also passwortlos zu "ssh'en", muss der Server, der Rechner zu dem du connectest, die entsprechenden Einstellungen in seiner sshd_config stehen haben.

Über deine lokale ssh_config (also die für den Client) kannst du nur so Sachen wie KeepAlive, X-Forwarding und so weiter regeln. Aber nicht die Authentifizierungsmechanismen des Servers konfigurieren.
Wär ja noch schöner ;)
 
Danke, aber das ist mir schon klar, dass die sshD_config für den ssh-Daemon, also den Server zuständig ist.
Es kann aber sein, dass in der ssh_config noch etwas bezüglich der Keys geregelt werden muss, also welche von wo genommen werden oder so.
Aber ich glaube bei mir ist grad das Problem, dass der Windows SSH-Server nicht rafft, woher er den Key bekommt. Ich finde auch keine Logs, in der eine Fehlerbeschreibung enthalten ist.
 
Ich dachte schon ich hätte es geschafft. :wall:

Nach unzähligen Konfigurationsversuchen, Verbindungsversuchen mit anderen Clients und zwischen Linux-Rechnern habe ich eine Option in der sshd_config gefunden, die verhinderte, dass der sshd die Keys aus der authorized_keys verwendet:
Code:
StrictModes no #war vorher auf "yes" gestellt
Dann kam keine Passwortabfrage mehr, sondern nun die Passphraseabfrage, was ja völlig okay ist, da ich dem einen Client einen Key mit und einem Client einem ohne Passphrase verpasst habe. Und das war auch der richtige^^
Doch nach Eingabe des entsprechenden Passphrase kam dann die Meldung:
Code:
Last login: <Datum> <Zeit> from 10.1.2.13
Connection to 10.1.2.10 closed.
Das wars. Jetzt lande ich wieder in der Bash.

Im Windows Ereignisprotokoll kommt aber immerhin eine Fehlermeldung:
Code:
sshd : PID 2788 : fatal: setreuid 500: Permission denied
Nach kurzem suchen, habe ich gefunden, dass jemand einfach dem OpenSSH Benutzer der Administratoren-Gruppe hinzugefügt hat um das Problem zu lösen.
just though to let you know that after spending several hours trying to get
*ssh* key authorization to work and always getting the sshd : PID 348 :
fatal: setreuid 500: Permission denied. message
I found a solution, I added the sshd_server user the administrators
group and restarted the service.
Regards Tomas
Doch ich habe einfach keinen SSH-Benutzer auf der Windows-Kiste gefunden. Oder zumindestens keinen, der vom Namen her so klang, als wäre er ein solcher.
Hat auch hier jemand einen Rat für mich?
 
So dat ganze funktioniert jetzt. Habe anstatt OpenSSH CopSSH genommen und damit läuft alles prächtig.

Jetzt muss ich mich erstmal darum kümmern, dass ich ein Programm finde welches mir aus CopSSH eine automatisierte Installation erstellt, sodass Benutzer nicht erst aktiviert oder Konfiguration erstellt werden müssen.

Ich habe dieses Programm gefunden: http://winfuture.de/news,15616.html

Aber ist das wirklich so gut wie beschrieben? Es darf ja auf keinen Fall was schief gehen.
Wenn ich so ein Paket erstellt hätte (*.msi ?) könnte man das ja ganz einfach über Gruppenrichtlinien installieren lassen. Aber da muss ich auch erstmal nachfragen. Wenn man mit einem Klick den Server manuell installieren kann, reicht das auch.
Oder habt ihr eine andere Idee?
 
Ich denke, wenn es um Gruppenrichtlinien und automatisierte Softwareverteilung geht, bist du im Windows-Bereich besser aufgehoben.
Aber den Link zu dem dort aufgemachten Thread kannst ja auch mal hier posten ;)
 
So dat ganze funktioniert jetzt. Habe anstatt OpenSSH CopSSH genommen und damit läuft alles prächtig.

Jetzt muss ich mich erstmal darum kümmern, dass ich ein Programm finde welches mir aus CopSSH eine automatisierte Installation erstellt, sodass Benutzer nicht erst aktiviert oder Konfiguration erstellt werden müssen.

Ich habe dieses Programm gefunden: http://winfuture.de/news,15616.html

Aber ist das wirklich so gut wie beschrieben? Es darf ja auf keinen Fall was schief gehen.
Wenn ich so ein Paket erstellt hätte (*.msi ?) könnte man das ja ganz einfach über Gruppenrichtlinien installieren lassen. Aber da muss ich auch erstmal nachfragen. Wenn man mit einem Klick den Server manuell installieren kann, reicht das auch.
Oder habt ihr eine andere Idee?
Also:

Bei der Installation über eine Gruppenrichtlinie muss das Paket nicht zwingend als msi vorliegen. Es gibt nämlich insgesamt 2 Möglichkeiten zur Installation: Bei der Anmeldung des Rechners an der Domäne (benötigt msi Paket), oder beim Starten/Herunterfahren über ein Batchscript.

Dir muss klar sein, dass alle deine Server dafür neugestartet werden müssen. Wenn das nicht geht kannst du die automatische Installation erstmal vergessen. Wenn das aber kein Problem ist, kannst du dir einen automatisierten Installer selberbasteln (ich empfehle Autoit) und verteilen.

http://www.autoitscript.com/autoit3/
 
@Stronzo
Jop mit AutoIT hab ich schon mal angefangen zu werkeln, bin aber noch nicht weit gekommen. Hab jetzt erstmal we und dann ne woche schule, kann also nichts im betrieb machen. Wie das mit neustarten ist, weis ich nicht, aber wohl eher nicht.^^ Aber danke für die Information.

@Sash
Ja das werde ich bald ma machen.

Nochmals Dankeschön!

MFG
The Keeper
 
@Stronzo
Wie das mit neustarten ist, weis ich nicht, aber wohl eher nicht.^^ Aber danke für die Information.

Das ist schade. Hättest du mal genau gelesen hättest du gemerkt, dass ich das schon auf Seite 1 gesagt habe. Dann hätte man sich den ganzen Rest bis hierhin sparen können, weil es dann eh nicht in Frage kommt eine Software zu installieren, oder?
Check doch erstmal deine Rahmenbedingungen ab bevor du dich ans Eingemachte machst, spart allen Zeit...
 
Da hast du wohl vollkommen recht. :-[

Ich habe also mal nachgefragt, neu starten ist möglich, da Einsatz von Clustern. Ich hab jetzt auch ein Script für AutoIT geschrieben, welches zuerst eine GUI anzeigt, in der man die Benutzerdaten für den SSH-Dienst eingibt und von welchem man die Installation starten kann.

Wenn es jemanden interessiert, kann ich es gerne hier posten. Ist halt sehr ausführlich geworden, da ich versucht habe alle Möglichen (Eingabe-)Fehler zu behandeln.

Das werde ich dann erstmal absegnen lassen und mir schonmal Gedanken darüber machen, wie ich automatisiert alle Server anspreche. Und auf welcher Grundlage ich das Realisiere (Webinterface -> PHP? JS?, GUI unter Linux mit C + GTK? :hmm:, oder einfach ein Shell-Script? .....)

MFG
The Keeper
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh