SSH Schlüssel / passwortlose Anmeldung für rsync

Dieses Thema im Forum "Mac OS X - Unix & Terminal" wurde erstellt von sevY, 25.03.2005.

  1. sevY

    sevY Thread Starter Gast

    Hi zusammen,

    ich möchte gerne 'iMac' und 'Sawtooth' via SSH mit rsync synchronisieren.
    Hier geht es mir um die passwortlose Anmeldung.

    'iMac' ist der Bürorechner, 'Sawtooth' mein Arbeitsrechner mit einer 2. HDD für Backups.

    Auf jedem Rechner existiert der Benutzer 'Yves'.

    Ich habe nun wie folgt sowohl auf 'iMac' als auch auf 'Sawtooth' ein SSH Schlüsselpaar erzeugt:

    Code:
    ssh-keygen -t dsa -b 1024
    
    Dann habe ich mich von 'Sawtooth' mittels SSH (und Passwort) auf 'iMac' eingeloggt, dort den Sawtooth-Yves-Pubkey (id_dsa.pub) wie folgt in das Verzeichnis ~Yves/.ssh/ auf 'iMac' kopiert:

    Code:
    scp id_dsa.pub Yves@iMac:/Users/Yves/.ssh/id_rsa.pub.sawtooth
    
    Anschließend habe ich den Inhalt von id_rsa.pub.sawtooth in die Datei authorized_keys auf 'iMac' kopiert:

    Code:
    cat id_rsa.pub.sawtooth >> authorized_keys
    


    Um das alles nochmal zu prüfen habe ich das lokal überprüft:

    1.) Für beide Benutzer 'Yves' existiert auf jedem Rechner ein private und ein public key.
    2.) Um mich passwortlos via SSH von 'Sawtooth' auf 'iMac' anmelden zu können, habe ich den public key von Yves@Sawtooth in die authorized_keys im Userverzeichnis von Yves@iMac kopiert (manuell mittels pico geprüft… ist also drin…)


    Wenn ich dann nun versuche, mich mittels ssh Yves@iMac von 'Sawtooth' aus anzumelden, wird trotzdem nach meinem Passwort gefragt… wo liegt das Problem? Was mache ich falsch?


    Ganz am Rande habe ich noch eine Frage zu Rsync und einem Bash-Befehl, der eine Pfadangabe mit Leerzeichen enthält:

    Code:
    #! /bin/bash 
    
    #Adressbuch
    rsync -rulHvpogDt Yves@iMac:/Users/Yves/Library/Application\ Support/AddressBook/ /Volumes/Archiv/iMac/Rsync/Library/Application\ Support/AddressBook/
    
    
    /*
    receiving file list ... link_stat "/Users/Yves/Library/Application" failed: No such file or directory
    link_stat "/Users/Yves/Support/AddressBook/." failed: No such file or directory
    done
    client: nothing to do: perhaps you need to specify some filenames or the --recursive option?
    rsync error: some files could not be transferred (code 23) at main.c(660)
    */
    
    Eigentlich ist das Leerzeichen doch korrekt escaped (\ ), oder?


    Liebe Grüße

    Yves
     
  2. DER_KOMTUR

    DER_KOMTUR MacUser Mitglied

    Beiträge:
    775
    Zustimmungen:
    2
    MacUser seit:
    08.06.2004
    Du kannst den Pfad doch komplett in Anführungszeichen schreiben, dann musst Du doch nicht jedes Zeichen excapen...
     
  3. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.821
    Zustimmungen:
    3.633
    MacUser seit:
    23.11.2004
    das ist normal, du musst ja erst einmal den private key entschlüsseln mit dem passwort. um das zu umgehen, müsstest du einen key ohne passwort machen. das ist aber SEHR gefährlich ;)

    oder du hast in der sshd_config das anmelden per key nicht erlaubt...
     
  4. der_Kay

    der_Kay MacUser Mitglied

    Beiträge:
    1.693
    Zustimmungen:
    7
    MacUser seit:
    02.09.2004
    Die Datei "authorized_Keys "dient zur Aufbewahrung von Schlüsseln, die zusammen mit der SSH Protokollversion 1 verwendet werden. Mittlerweise wird SSH2 benutzt (aber heißen tut das ganze immer noch "ssh"). Hänge dazu den public key an die Datei "authorized_keys2" anstatt "authorized_keys" an (wenn diese nicht existiert, mußt Du sie im Verzeichnis ~/.ssh anlegen). Andererseits kannst Du ssh mit der Option "-1" zwingen, Protokoll 1 zu benutzen, aber davon ist abzuraten...
    Achte darauf, daß der Client den richtigen private key findet und das die Dateirechte daraufrichtig gesetzt sind, sonst weigert sich shh, den key zu benutzen!

    Viel Erfolg,

    Kay
     
    Zuletzt bearbeitet: 25.03.2005
  5. sevY

    sevY Thread Starter Gast

    Der Key ist ohne Passwort…

    Die sshd_config auf 'iMac' sieht so aus:

    Code:
    
    
    #Port 22
    #Protocol 2,1
    #ListenAddress 0.0.0.0
    #ListenAddress ::
    
    # HostKey for protocol version 1
    #HostKey /etc/ssh_host_key
    # HostKeys for protocol version 2
    #HostKey /etc/ssh_host_rsa_key
    #HostKey /etc/ssh_host_dsa_key
    
    # Lifetime and size of ephemeral version 1 server key
    #KeyRegenerationInterval 3600
    #ServerKeyBits 768
    
    # Logging
    #obsoletes QuietMode and FascistLogging
    #SyslogFacility AUTH
    #LogLevel INFO
    
    # Authentication:
    
    #LoginGraceTime 120
    #PermitRootLogin yes
    #StrictModes yes
    
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile /Users/Yves/.ssh/authorized_keys
    
    # rhosts authentication should not be used
    #RhostsAuthentication no
    # Don't read the user's ~/.rhosts and ~/.shosts files
    #IgnoreRhosts yes
    # For this to work you will also need host keys in /etc/ssh_known_hosts
    #RhostsRSAAuthentication no
    # similar for protocol version 2
    #HostbasedAuthentication no
    # Change to yes if you don't trust ~/.ssh/known_hosts for
    # RhostsRSAAuthentication and HostbasedAuthentication
    #IgnoreUserKnownHosts no
    
    # To disable tunneled clear text passwords, change to no here!
    #PasswordAuthentication yes
    #PermitEmptyPasswords no
    
    # Change to no to disable s/key passwords
    #ChallengeResponseAuthentication yes
    
    # Kerberos options
    #KerberosAuthentication no
    #KerberosOrLocalPasswd yes
    #KerberosTicketCleanup yes
    
    #AFSTokenPassing no
    
    # Kerberos TGT Passing only works with the AFS kaserver
    #KerberosTgtPassing no
    
    # Set this to 'yes' to enable PAM keyboard-interactive authentication 
    # Warning: enabling this may bypass the setting of 'PasswordAuthentication'
    #PAMAuthenticationViaKbdInt no
    
    #X11Forwarding no
    #X11DisplayOffset 10
    #X11UseLocalhost yes
    #PrintMotd yes
    #PrintLastLog yes
    #KeepAlive yes
    #UseLogin no
    #UsePrivilegeSeparation yes
    #PermitUserEnvironment no
    #Compression yes
    
    #MaxStartups 10
    # no default banner path
    #Banner /some/path
    VerifyReverseMapping yes
    
    # override default of no subsystems
    Subsystem	sftp	/usr/libexec/sftp-server
    
     
  6. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.821
    Zustimmungen:
    3.633
    MacUser seit:
    23.11.2004
    welcher? auch dein private key?
     
  7. sevY

    sevY Thread Starter Gast

    Hilft auch nicht.

    Hmm… nachdem ich in der config (siehe oben) die Werte geändert habe, bekomme ich „… connection refused …“.

    [cd]
    ssh Yves@iMac -i /Users/Yves/.ssh/id_dsa
    [/cd]

    Den Key hab ich auch chmod 0600

    Yves
     
  8. sevY

    sevY Thread Starter Gast


    Ich hab das mit ssh-keygen erstellt… und dann die Eingabe für „passphrase“ leer gelassen.
     
  9. sevY

    sevY Thread Starter Gast

    Hmm… ich hab das nun nochmal von vorne gemacht…

    1.) Auf Server und Client ein Schlüsselpaar erzeugt.
    2.) chmod 600 für den private key, 644 für den public key
    3.) Vom Client den public key auf den Server kopiert und in authorized_keys und authorized_keys2 umbenannt.
    4.) Auf dem Server die sshd_config wie folgt angepasst:

    Code:
    HostKey /Users/Yves/.ssh/id_dsa
    PubkeyAuthentication yes
    AuthorizedKeysFile /Users/Yves/.ssh/authorized_keys
    VerifyReverseMapping yes
    Subsystem	sftp	/usr/libexec/sftp-server
    
    SSH Daemon neugestartet.


    5.) Versucht, vom Client mit dem Server zu connecten:

    Code:
    ssh Yves@iMac -i /Users/Yves/.ssh/id_dsa 
    
    Passwortabfrage erscheint… Schlüssel wird ignoriert.

    Yves
     
  10. sevY

    sevY Thread Starter Gast

    Ich habe nun einen Troubleshooting-Guide durchgearbeitet… und in der config „PermitEmptyPassword“ eingetragen.

    Nun bekomme ich das:

    Code:
    ssh -i /Users/Yves/.ssh/id_dsa.pub -l Yves iMac
    ssh_exchange_identification: Connection closed by remote host
    
     
Die Seite wird geladen...