auto Login ssh

  • Guten Abend an alle,

    da ich nun seit mehreren Monaten Linux mint benutze und ich mit weile den Terminal ser vertraut bin mache ich alle Updates darüber.
    nun dachte ich mir das ich das alles in ein sh Skript schreibe der wie folgt ist:

    Code
    sudo apt-get update && sudo apt-get upgrade
    ssh pi:BPI
    set password "blabla"
    sudo apt-get update && sudo apt-get upgrade

    jedoch ist das Problem die zeile passwort das er das nicht automatisch einträgt. habt ihr da vielleicht eine Lösung für mich ?

  • Warum benutzt Du nicht key authorization? Dann brauchst Du kein Passwort.
    Du generierst mit ssh-keygen einen key und kopierst ihn mit ssh-copy-id auf das remote System. Danach kommst Du ohne Passwort auf das remote System. Per ssh kannst Du dann auch alle beliebigen Befehle ausführen ;)


  • Guten Abend an alle,

    Code
    sudo apt-get update && sudo apt-get upgrade
    ssh pi:BPI
    set password "blabla"
    sudo apt-get update && sudo apt-get upgrade

    jedoch ist das Problem die zeile passwort das er das nicht automatisch einträgt. habt ihr da vielleicht eine Lösung für mich ?

    Das wird so nicht klappen.
    Du hast aber mehrere Möglichkeiten.

    1. Du trägst in der /etc/sudoers den User pi so ein das er sudo apt-get ohne Password machen kann.

    /etc/sudoers

    Code
    # user pi
    pi	ALL = NOPASSWD: /usr/bin/apt-get
    # gruppe adm, in der ist auch der user pi
    %adm ALL = NOPASSWD: /usr/bin/apt-get
    # User oder gruppe auf Host (von wo aus man sich per ssh verbunden hat z.B. workstation01) beschränken
    pi workstation01 = NOPASSWD: /usr/bin/apt-get
    %adm workstation01 = NOPASSWD: /usr/bin/apt-get

    Hier mal wie eine sudoers mir Aliases mit der man das ganze etwas generischer machen kann

    2. andere Möglichkeit wenn Du gerade eh anfangen willst solche Jobs zu scripten ist z.B. mit Ansible https://www.ansible.com
    Automatisch zusammengefügt:


    Warum benutzt Du nicht key authorization? Dann brauchst Du kein Passwort.
    Du generierst mit ssh-keygen einen key und kopierst ihn mit ssh-copy-id auf das remote System. Danach kommst Du ohne Passwort auf das remote System. Per ssh kannst Du dann auch alle beliebigen Befehle ausführen ;)

    Es geht ihm nicht um ssh sondern um sudo ;)

  • Naja mir geht es nur um die Passwort Eingabe und das von Framp klingt ganz Interresannt eingedlich wenn ich so umgehen kann die passwort eingabe habe ich ja mein ziel erreicht aber wie genau gehe ich da vor?


  • Naja mir geht es nur um die Passwort Eingabe und das von Framp klingt ganz Interresannt eingedlich wenn ich so umgehen kann die passwort eingabe habe ich ja mein ziel erreicht aber wie genau gehe ich da vor?

    Das was ich geschrieben habe gilt für sudo, damit da keine Passwortabfrage kommt.
    Das von Framp ist für den Login per SSH ohne Passwort.

  • das habe ich mir gedacht aber das per ssh reicht mir voll aus.

    also ich habe jetzt schon mit:

    Code
    ssh-keygen -t rsa -b 4096

    den key auf dem pi erstellt aber irgendwie bekomme ich den nicht auf mein mit installiert mit

    Code
    ssh-copy-id -i ~/.ssh/id_rsa.pub user@server

    und

    Code
    cat id_rsa.pub | ssh server 'cat>> ~/.ssh/authorized_keys'
  • Code
    ssh-copy-id -i ~/.ssh/id_rsa.pub pi@BPI


    oder

    Code
    cat ~/.ssh/*.pub | ssh user@BPI 'umask 077; cat >>.ssh/authorized_keys'

    Kannst Du mal auf dem PI in der sshd_config was nachgucken?
    Remote:

    Code
    ssh pi@BPI 'egrep -i "PermitRootLogin|AuthorizedKeys"' /etc/ssh/sshd_config

    oder local auf dem PI:

    Code
    egrep -i "PermitRootLogin|AuthorizedKeys"' /etc/ssh/sshd_config

    Und die Ausgabe hier posten.


  • Es geht ihm nicht um ssh sondern um sudo ;)

    Jupp, das habe ich irgendwie falsch verstanden :blush: . Aber wie man sieht zeigt sich wieder dass ein TE auch beschreiben sollte was er erreichen will sowie wie er es versucht zu erreichen. Denn es ist nicht immer der eingeschlagene Weg der richtige Weg :shy:

  • Code
    jason@Jason-Leppy ~ $ ssh pi@BPI 'egrep -i "PermitRootLogin|AuthorizedKeys"' /etc/ssh/sshd_config
    pi@bpi's password: 
    PermitRootLogin without-password
    #AuthorizedKeysFile %h/.ssh/authorized_keys
    # the setting of "PermitRootLogin without-password".
    Code
    ssh-copy-id -i ~/.ssh/id_rsa.pub pi@BPI


    oder

    Code
    cat ~/.ssh/*.pub | ssh user@BPI 'umask 077; cat >>.ssh/authorized_keys'

    Kannst Du mal auf dem PI in der sshd_config was nachgucken?
    Remote:

    Code
    ssh pi@BPI 'egrep -i "PermitRootLogin|AuthorizedKeys"' /etc/ssh/sshd_config

    oder local auf dem PI:

    Code
    egrep -i "PermitRootLogin|AuthorizedKeys"' /etc/ssh/sshd_config

    Und die Ausgabe hier posten.

    Code
    jason@Jason-Leppy ~ $ ssh pi@BPI 'egrep -i "PermitRootLogin|AuthorizedKeys"' /etc/ssh/sshd_config
    pi@bpi's password: 
    PermitRootLogin without-password
    #AuthorizedKeysFile %h/.ssh/authorized_keys
    # the setting of "PermitRootLogin without-password".
    Code
    jason@Jason-Leppy ~ $ egrep -i "PermitRootLogin|AuthorizedKeys"' /etc/ssh/sshd_config
    > 
    > 
    >
    Code
    jason@Jason-Leppy ~ $ ssh-copy-id -i ~/.ssh/id_rsa.pub pi@BPI
    
    
    /usr/bin/ssh-copy-id: ERROR: failed to open ID file '/home/jason/.ssh/id_rsa.pub': No such file


    Automatisch zusammengefügt:

    Code
    jason@Jason-Leppy ~ $ cat ~/.ssh/*.pub | ssh pi@BPI 'umask 077; cat >>.ssh/authorized_keys'
    cat: '/home/jason/.ssh/*.pub': Datei oder Verzeichnis nicht gefunden
    pi@bpi's password: 
    jason@Jason-Leppy ~ $

    das habe noch jetzt als ausgabe

    Einmal editiert, zuletzt von Lifelab (20. Januar 2017 um 20:14)

  • pi@BPI:~ $ AuthorizedKeysFile %h/.ssh/authorized_keys
    -bash: AuthorizedKeysFile: Kommando nicht gefunden.
    pi@BPI:~ $ systemctl restart sshd
    Failed to restart sshd.service: Access denied
    pi@BPI:~ $


    das bekomme ich als antwort oder meinst du auf mein leppy?
    Automatisch zusammengefügt:
    auf dem leppy bekomme ich die selbe Antwort

    Einmal editiert, zuletzt von Lifelab (20. Januar 2017 um 20:22)

  • Zitat


    jason@Jason-Leppy ~ $ cat ~/.ssh/*.pub | ssh pi@BPI 'umask 077; cat >>.ssh/authorized_keys'
    cat: '/home/jason/.ssh/*.pub': Datei oder Verzeichnis nicht gefunden


    Du (jason) hast keinen key auf dem "Jason-Leppy" erzeugt oder ihn nicht im default-Verzeichnis ~/.ssh abgelegt.

    Zitat


    pi@BPI:~ $ AuthorizedKeysFile %h/.ssh/authorized_keys
    -bash: AuthorizedKeysFile: Kommando nicht gefunden.
    pi@BPI:~ $ systemctl restart sshd
    Failed to restart sshd.service: Access denied
    pi@BPI:~ $


    "AuthorizedKeysFile..." ist eine Zeile in /etc/ssh/sshd_config, kein Kommando.

    systemctl benötigt sudo

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Einmal editiert, zuletzt von llutz (20. Januar 2017 um 20:28)


  • Du (jason) hast keinen key auf dem "Jason-Leppy" erzeugt oder ihn nicht im default-Verzeichnis ~/.ssh abgelegt.

    achso dann ist das denke ich mal so jetzt richtig

    Code
    pi@BPI:~ $ cat ~/.ssh/*.pub | ssh pi@BPI 'umask 077; cat >>.ssh/authorized_keys'
    The authenticity of host 'bpi (127.0.1.1)' can't be established.
    ECDSA key fingerprint is 45:83:48:4e:fd:4f:c7:f8:43:39:61:4f:db:2a:ac:41.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'bpi' (ECDSA) to the list of known hosts.
    pi@bpi's password: 
    pi@BPI:~ $


    "AuthorizedKeysFile..." ist eine Zeile in /etc/ssh/sshd_config, kein Kommando.

    systemctl benötigt sudo

    jetzt hat es geklappt mit dem neustarten hab, habe an das sudo nicht gedacht gerade
    Automatisch zusammengefügt:
    Aber das verbinden ohne Passwort geht immer noch nicht
    Automatisch zusammengefügt:
    Das Problem ist ja jetzt nur das ich den Schlüssel nicht auf mein Leppy Importiert bekomme oder sehe ich das falsch?

    Kann ich das nicht einfach manuell machen, also den odner authorized_keys erstellen bei mir im Ordner und die Datei da rein kopieren und dann die nötigen Rechte vergeben?

    Einmal editiert, zuletzt von Lifelab (20. Januar 2017 um 21:17)

  • Du erstellst Dein schlüsselpaar.
    Den geheimen Schlüssel id_rsa benutzt Du auf dem Rechner von dem Du verbinden willst. Den packst Du auf keinen anderen Rechner, so das kein anderer dran kommt.
    Den öffentlichen Schlüssel id_rsa.pub packst Du in .ssh/authorized_keys auf die Rechner auf die Du verbinden willst.

    So wie ich das lese hast Du das einfach nur verkehrt gemacht. Kopiere id_rsa und id_rsa.pub einfach auf Deine Workstation und kopieren dann den public (id_rsa.pub) einfach auf den PI.

    Auf dem Key sollte auch beim erstellen ein Password gesetzt werden. Damit ihn keiner benutzen könnte wenn er ihn irgendwie mal in die Hände bekommen sollte.
    Ja dann hast Du wieder ein Passwort was Du eingeben musst.
    Das kannst Du aber leicht mit ssh-agent lösen oder sogar geshared mit dem Programm keychain.
    Damit musst Du den Key einmal freischalten und kannst ihn dann einfach benutzen. Was das ganze dann wieder einfacher macht, da man das Passwort für den Login nicht jedemal eingeben muss.
    Einen Key ohne Passwort solltest Du nicht benutzen. Ist zwar bequem aber sehr gefährlich.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!