Jörg: ssh key einrichten

Hallo,

Um mittels rsync Daten zu sichern, habe ich von meinem Rechner zuhause mit meinem Server 1 einen gemeinsamen rsync-Schlüssel eingerichtet. So kann rsync incrementelle Backups machen.

Jetzt will ich von Server 1 zu Server 2 genau dasselbe machen. ich hatte das schonmal eingerichtet, aber vergessen, wie es geht. ich vermute mal, ich logge mich über ssh auf Server 1 ein und richte den Key ein. Dann aber erhalte ich:

/mypath/id_rsa already exists.  
Overwrite (y/n)? 

Fragen:

Wenn ich den überschreibe, ist dann meine Verbindung Home->Server 1 weg?

Kann ich unterschiedliche Keys für Home->Server 1 und Server 1-> Server 2 erstellen? Wenn ja, wie gehe ich dann vor?

Jörg

  1. Kann ich unterschiedliche Keys für Home->Server 1 und Server 1-> Server 2 erstellen? Wenn ja, wie gehe ich dann vor?

    rsync -e "ssh -i /path/mein_spezial_key_fuer_server2"

    1. Kann ich unterschiedliche Keys für Home->Server 1 und Server 1-> Server 2 erstellen? Wenn ja, wie gehe ich dann vor?

      rsync -e "ssh -i /path/mein_spezial_key_fuer_server2"

      Hatte ich auch schonmal dran gedacht. Ich war/bin halt nicht sicher, wie die beiden Server die Key-Geschichte untereinander verhandeln. 🙄

      1. Da wäre noch Lesestoff zum ssh-agent:

        https://www.ssh.com/academy/ssh/agent

        Das agent-forwarding muss dazu in /etc/ssh/sshd_config UND '/etc/ssh/ssh_config` erlaubt sein.

        AllowAgentForwarding yes
        

        Auf dem home-Rechner startest Du ssh-agent, fügst den Privaten Key hinzu (ggf. unter Eingabe des Passwortes.)

        Wenn Die Verbindung zu Server1 aufgebaut ist und sodann von dort zu Server2 aufgebaut werden soll kann der Agent alles erforderlich weiterleiten.

        Dazu muss dann der public_key des Rechners "home" (bevorzugt mit ssh-copy-id) auf Server1 und Server2 in $HOME/.ssh/authorized_keys (oder wo auch immer diese Datei laut /etc/ssh/sshd_config erwartet wird) abgelegt werden.

  2. Tach!

    /mypath/id_rsa already exists.  
    Overwrite (y/n)? 
    

    Wenn ich den überschreibe, ist dann meine Verbindung Home->Server 1 weg?

    Ein Schlüssel besteht aus zwei Teilen, dem öffentlichem und dem privaten. OpenSSL erstellt die beiden Teile in zwei Dateien. Wenn nicht anders angegeben heißen die

    • id_rsa für den privaten Teil
    • id_rsa.pub für den öffentlichen Teil

    Statt rsa steht das jeweilige Verfahren.

    Wenn die Frage nach dem Überschreiben kommt, scheinst du einen zweiten Key zu erzeugen, ohne einen Dateinamen anzugeben. Der name der Datei spielt keine Rolle, du musst hat nur den richtigen angeben, wenn du den Key für irgendwas verwenden möchtest.

    Kann ich unterschiedliche Keys für Home->Server 1 und Server 1-> Server 2 erstellen? Wenn ja, wie gehe ich dann vor?

    Auf Server 1 musste bisher nur der öffentliche Teil bekannt sein. Die private id_rsa hatte da nichts zu suchen. Die id_rsa.pub auch nicht, denn der öffentliche Key wird meist in die Datei authorized_keys eingetragen.

    Wenn sich nun Server 1 zu 2 verbinden möchte, braucht der 1 den privaten Schlüssel. Der 2 braucht nur den öffentliche Teil, und da vermutlich auch nur als Eintrag in der authorized_keys. Am besten erstellst du einen neues Paar. Die Dateinamen spielen keine Rolle.

    dedlfix.

    1. Hi dedlfix,

      ah, ok. So wird ein Schuh draus. Dann war in meinem Verzeichnis noch der alte private Schlüssel drin. Deshalb das Überschreiben.

      Danke für die Erklärung. 👍

      Jörg

  3. Kann ich unterschiedliche Keys für Home->Server 1 und Server 1-> Server 2 erstellen? Wenn ja, wie gehe ich dann vor?

    Es sind Key-Paare.Jweils ein privater und ein öffentlicher.

    Standardvorgehen:

    home:

    Erzeuge das Key-Paar mit ssh-keygen (oder einer anderen Methode). Kopiere nur den public-Key mit ssh-copy-id auf den Server 1. Der wird dabei nach $HOME/.ssh/authorized_keys geschrieben und nur dahin.

    Server 1:

    Erzeuge ein weiteres Key-Paar mit ssh-keygen (oder einer anderen Methode) auf dem Server 1. Kopiere nur den public-Key mit ssh-copy-id auf den Server 2. Der wird dabei nach $HOME/.ssh/authorized_keys geschrieben und nur dahin.

    Möglicherweise musst Du weitere Angaben über Deine Systeme machen:

    • Ist „home“ ein Windows-Rechner, dann gibt es z.B. wahrscheinlich kein Programm namens ssh-copy-id, da muss man etwas anders vorgehen.
    • sind die Benutzerverzeichnisse auf Server 1 und/oder Server 2 verschlüsselt, dann muss man auch mehr tun.
    /mypath/id_rsa already exists.  
    Overwrite (y/n)? 
    

    Kommt drauf an, was Du vorher getan hast und was Du jetzt tun willst.

    1. Hallo Raketen...*,

      auch an Dich nochmal ein Dank für die sehr gute Erklärung.

      • Ist „home“ ein Windows-Rechner, dann gibt es z.B. wahrscheinlich kein Programm namens ssh-copy-id, da muss man etwas anders vorgehen.

      Ist zwar ein Windowsrechner, aber ich habe eine Linuxdistibution eingebunden, sodass ich ihn komplett mit Linux bedienen kann. Insofern kein Problem an dieser Stelle. 😀

      • sind die Benutzerverzeichnisse auf Server 1 und/oder Server 2 verschlüsselt, dann muss man auch mehr tun.
      /mypath/id_rsa already exists.  
      Overwrite (y/n)? 
      

      Kommt drauf an, was Du vorher getan hast und was Du jetzt tun willst.

      Sagte ich schon zu dedlfix. Da war noch der alte private Schlüssel drin. Eigentlich undramatisch, aber da ich mich damit nicht auskannte, konnte ichs nicht zuordnen. Das ist dank Eurer erklärungen nun anders. Ab hier bekomme ichs vermutlich hin.

      Danke für Eure fixen Tutorials. 👍😊

      Jörg

    2. Habe das jetzt alles gemacht und eigentlich hat es auch gut funktioniert, denn es wurde der id_rsa.pub auf Server1 angelegt, dann wurde er auch ordnungsgemäß auf server2 kopiert, d.h. die .ssh/authorized_keys wurde auf server2 erstellt und es ist ein Eintrag drin.

      /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed:
      "/mypath/.ssh/id_rsa.pub"
      /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter
      out any that are already installed
      /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted
      now it is to install the new keys
      server2@me's password:
      
      Number of key(s) added: 1
      
      Now try logging into the machine, with: "ssh '....'"
      and check to make sure that only the key(s) you wanted were added.
      

      Trotzdem werde ich auf Server2 nach einem Passwort gefragt, wenn ich mich von Server1 einloggen will.

      Das ist doch nicht Sinn und zweck?

      Habe ich da etwas falsch gemacht oder ist Server2 "verkorkst"?

      Was ich vermisst habe, ist auch die Frage nach "Vertrauenswürdigkeit des fingerprints", ich meine da sowas in erinnerung diesbzgl. zu haben.

      Jörg

      1. Trotzdem werde ich auf Server2 nach einem Passwort gefragt, wenn ich mich von Server1 einloggen will.

        Mache bitte mal auf Server1 folgendes:

        ls -al ~/.ssh/
        

        Ich brauche die Ausgaben.

        ssh -vv $USER@server2
        

        Ich brauche die Ausgaben.

        1. Hi Rakete,

          Ich brauche die Ausgaben.

          Edit: Habe gerade vom Support die Nachricht erhalten, dass der Server diesbzgl. konfiguriert werden muss...

          Jörg

          1. Die Frage nach dem Inhalt von /etc/ssh/sshd_config und /etc/ssh/ssh_config hätte sich wahrscheinlich als nächstes aufgedrängt.

            1. Die Frage nach dem Inhalt von /etc/ssh/sshd_config und /etc/ssh/ssh_config hätte sich wahrscheinlich als nächstes aufgedrängt.

              Die hätte ich vermutlich bei einem Shared Host nich beantworten können, stimmts?

              1. Die Frage nach dem Inhalt von /etc/ssh/sshd_config und /etc/ssh/ssh_config hätte sich wahrscheinlich als nächstes aufgedrängt.

                Die hätte ich vermutlich bei einem Shared Host nich beantworten können, stimmts?

                Doch. Die sind für jeden lesbar. Es sei denn auf OSI-Level 8 will das jemand par tout anders.

                1. Die Frage nach dem Inhalt von /etc/ssh/sshd_config und /etc/ssh/ssh_config hätte sich wahrscheinlich als nächstes aufgedrängt.

                  Die hätte ich vermutlich bei einem Shared Host nich beantworten können, stimmts?

                  Doch. Die sind für jeden lesbar. Es sei denn auf OSI-Level 8 will das jemand par tout anders.

                  Habe mal nachgesehen. Ich habe gar kein ssh-Verzeichnis auf /etc/

                  1. Dann gib mir mal einen Tipp zum OS.