per ssh auf einem anderen Rechner einen Publickey generieren

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von dauda, 29.06.2006.

  1. dauda

    dauda Grünschnabel

    Dabei seit:
    29.06.2006
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo, ich habe ein Problem!

    Ich möchte Daten in einem Netzwerk von einem Rechner auf einen anderen übertragen. Der eine Rechner ist sozusagen der Verwaltungsrechner, der andere ist ein beliebiger Rechner in meinem Netzwerk. Ich bin auf beiden Systemen angemeldet und kann mich auf dem beliebigen Netzwerkrechner per SSH einloggen.
    Nun habe ich ein Programm geschrieben, daß Ergebnisse in Form von Txt-Files erzeugt. Dieses Ergebnisse sollen auf den Verwaltungsrechner wieder zurückgespielt werden. Es ist aber sehr mühseelig, jedesmal das via:

    scp *.txt User@IP:.

    zu machen.
    Also dachte ich mir, schreibe ich mir ein Skript, daß quasi ein paßwortloses Anmelden auf dem Verwaltungsrechner ermöglicht.

    Dazu habe ich ein Skript geschrieben, daß einen Key generiert (also mit ssh-keygen) und diesen dann auf den Verwaltungsrechner kopiert.

    Nun das Problem.
    Führe ich dieses Skript lokal auf dem beliebigen Netzwerkrechner aus, so funktioniert alles ohne Probleme.
    Melde ich mich per SSH auf dem Netzwerkrechner an und starte dann das Skript, funktioniert es auch.
    Sobald ich jedoch diesen Aufruf ebenfalls in ein Skript oder auch in ein C-Programm integriere, dann kommt es zu Fehlern.

    Wie sehen diese Fehler aus?

    Nun ja, das Programm bzw. das Skript wird nur zum Teil ausgeführt. Starte ich ssh-keygen so werden verschiedene Infos vom User verlangt, bei diesen Abfragen springt dann das Programm, eine Eingabe ist dann nicht möglich. Das führt dazu, daß erst gar kein Key erzeugt wird....

    Hat jemand eine Idee, wie man das verhindern kann?
    Ich habe auch versucht, jeden Schritt einzeln zu automatisieren, also ich habe versucht immer nur einen Befehl in einem Skript zu erfassen, aber das war sinnlos, es kommt zu Fehlern, so bald man diesen Login via SSH automatisiert....

    Über eine Antwort wäre ich sehr dankbar....die Skripte selbst sind fehlerfrei, sonst würde das ja lokal bzw. bei manuellem SSH-Login ja nicht funktionieren.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 lordlamer, 29.06.2006
    lordlamer

    lordlamer Haudegen

    Dabei seit:
    15.05.2003
    Beiträge:
    703
    Zustimmungen:
    0
    Ort:
    hamburg
    1. script zeigen!
    2. absolute pfade genommen? hat der benutzer mit dem das ausgeführt wird die erforderlichen rechte etc.

    is alles nur raten ohne das script selber zu sehen

    frank
     
  4. dauda

    dauda Grünschnabel

    Dabei seit:
    29.06.2006
    Beiträge:
    2
    Zustimmungen:
    0
    Hier die Scripte:

    Das erste Script erzeugt den Schlüssel:

    ###############################################

    #! /bin/bash
    #Dieses Script erzeugt bzw. generiert den Schlüssel für die passwortlose Anmeldung auf dem Fronted-Rechner

    env LC_ALL=C /sbin/ifconfig eth0 | sed -n '/addr:/s/ [^r]*..//gp' > ownip #ERZEUGEN DER EIGENEN IP
    read Ownip < ownip

    read LBN < BN-"$Ownip" # Auslesen des lokalen Benutzers (wurde vom Server übermittelt

    # Datei Ownip stammt von Keyinstall und wird in das Verzeichnis von Keycopy hineininstalliert

    cd /home/$LBN/.ssh

    if test -s key-host-"$Ownip".pub


    then echo "Schlüssel bereits vorhanden!"


    else ssh-keygen -t rsa -b 2048; #generiert Key für Authentifizierung


    mv -i id_rsa.pub key-host-"$Ownip".pub # Umbenennen der SChlüssel zur Identifikation auf Zielhost


    fi

    echo "Schlüssel wurde erzeugt!"

    ###############################################

    Das zweite Script kopiert die Daten auf den Zielrechner:

    #! /bin/bash
    #Dieses Script kopiert den erzeugten Schlüssel auf den Fronted-Rechner

    echo "Kopiere Schlüssel zum Server"

    read Ownip < ownip

    read LBN < BN-$Ownip # Auslesen des lokalen Benutzers (wurde vom Server übermittelt
    # Datei Ownip stammt von Keyinstall und wird in das Verzeichnis von Keycopy hineininstalliert

    read Zh < hostip # Auslesen der Hostip
    read Usr < luser # Auslesen des Benutzers auf dem Server

    cd /home/$LBN/.ssh

    echo "Kopiere Schlüssel auf Zielrechner"
    echo "Bitte Password für Zielhost eingeben!"
    scp key-host-"$Ownip".pub $Usr@$Zh:. #Kopiert Key auf Zielrechner

    ssh $Zh chmod u+x Keysavec.sh

    echo "Zum Ausführen von Keysave bitte Passwort angeben!"

    ssh $Zh "./Keysavec.sh"

    ###############################################

    Die letzte Zeile im Script ruft ein Script auf dem Zielrechner auf, das den Schlüssel in ein spezielles Verzeichniss kopiert.

    Wie gesagt. Diese Scripte funktionieren. Das Problem ist aber, dass wenn man ein Script schreibt, dass automatisch eine ssh-Verbindung aufbaut und dann auf dem Rechner dieses Scripte, die ich oben dargestellt habe, ausführt, kommt es zu Problemen.

    Bezüglich der Frage absolute Pfade genommen??? Diese Frage verstehe ich nicht. Denn, das Script wird ja gestartet und auch zu einer bestimmten Stelle ausgeführt, erst wenn es zu Benutzerabfragen kommt, springt das Script!

    Der Benutzer hat die notwendigen Rechte, denn sonst gäbe es eine entsprechende Fehlermeldung.

    Ich denke eher, dass es kein Problem im Script selbst ist, sondern evt. eine programmiertechnische Besonderheit, die speziell bei ssh-Verbindungen auftritt, daher habe ich ganz bewusst kein Script reingestellt, denn dort kann man nichts erkennen. Achso, alle Scripte sind auf den jeweiligen Rechner für den angemeldeten Benutzer ausführbar!
     
Thema:

per ssh auf einem anderen Rechner einen Publickey generieren

Die Seite wird geladen...

per ssh auf einem anderen Rechner einen Publickey generieren - Ähnliche Themen

  1. Mysql DAtenbank auf einem anderen Laufwerk erstellen

    Mysql DAtenbank auf einem anderen Laufwerk erstellen: Hallo zusammen, möchte gerne auf einem gemountetem Laufwerk eine Mysql Datenbank erszeugen mit mysql> CREATE DATABASE /mnt/sql/testdb;...
  2. wie kann man die abhänigkeit von einem programm von anderen ermitteln?

    wie kann man die abhänigkeit von einem programm von anderen ermitteln?: hallo, wie kann man die abhänigkeit von einem programm von anderen ermitteln? ich will auf keine distro angewiesen sein. eine lösung für...
  3. variable aus einem anderen Objekt nutzen

    variable aus einem anderen Objekt nutzen: variable aus einem anderer Klasse nutzen Nabend. Folgendes Problem: Ich hab 3 objekte. In dem zweiten hab ich eine Zahl in einen Integer...
  4. Wie rufe ich ein Script mit übergabeParam aus einem anderen auf?

    Wie rufe ich ein Script mit übergabeParam aus einem anderen auf?: Hallo zusammen, ich habe ein script geschrieben, in dem ich den ordnerinhalt nach einer bestimmten Datei durchsuche und diese dann bearbeit....
  5. read-only auf /home von einem Tag auf den anderen???

    read-only auf /home von einem Tag auf den anderen???: Hi Leute ich bin gestern Nacht Heim gekommen mein Ftp saugt nicht mehr weiter weil er sagt read-only fs meine Eseldownloads alle angehalten. Ich...