staging.inyokaproject.org

ssh Zugang ohne Passwort

Status: Ungelöst | Ubuntu-Version: Server 22.04 (Jammy Jellyfish)
Antworten |

jochenv

Anmeldungsdatum:
23. April 2016

Beiträge: 604

Hallo zusammen

ich möchte mich auf meinem zweiten Server und einem PC, genau so ohne Passwort anmelden wie auf meinem ersten Server. Leider bekomme ich dies nicht hin und werde immer nach dem Passwort gefragt.

Ich würde dann, wenn das funktioniert, gern auch auf die besser Verschlüssel Ed25519 umsteigen. Das aber im Zweiten Schritt.

Auf meinem Laptop

ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub jochen@server2:/tmp

dann auf der Server2

cat /tmp/id_rsa.pub >>~/.ssh/authorized_keys
sudo service ssh restart

sollte doch funktionieren oder habe ich da etwas vergessen ???

Gruß Jochen

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7529

Steht was schönes in den Logs?

SSH ist empfindlich was die Rechte dieser Dateien (gesamter Pfad zur authorized_keys/id_rsa/usw.) angeht, und ignoriert sie komplett wenn die falsch gesetzt sind und das können sie nach dem cat schon sein, wenns vorher nicht existiert hat oder nicht richtig war.

Das cat funktioniert auch nur wenn die Datei am Ende ein Zeilenumbruch hatte. Normalerweise zwar der Fall aber gibt eben auch keine Garantie dafür.

Statt das selber mit scp, cat usw. könnte man es auch mit ssh-copy-id probieren.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 13293

jochenv schrieb:

... werde immer nach dem Passwort gefragt.

Versuch mal auf dem ssh-Client, mit der Option "PasswordAuthentication no".

Wie sind jetzt auf dem Server2, die Ausgaben von:

sudo sshd -t
systemctl status ssh

?

jochenv

(Themenstarter)

Anmeldungsdatum:
23. April 2016

Beiträge: 604

frostschutz schrieb:

Steht was schönes in den Logs?

in der syslog ... wenn ich mich via ssh anmelde

Mar 21 23:24:55 server08 systemd[1]: session-5.scope: Deactivated successfully.
Mar 21 23:25:52 server08 systemd[1]: Started Session 6 of User jochen.

mehr steht dort nicht für das anmelden.

SSH ist empfindlich was die Rechte dieser Dateien (gesamter Pfad zur authorized_keys/id_rsa/usw.) angeht, und ignoriert sie komplett wenn die falsch gesetzt sind und das können sie nach dem cat schon sein, wenns vorher nicht existiert hat oder nicht richtig war.

ok. kopiere das die Tage noch mal ...und melde mich.

Das cat funktioniert auch nur wenn die Datei am Ende ein Zeilenumbruch hatte. Normalerweise zwar der Fall aber gibt eben auch keine Garantie dafür.

habe die Datei unverändert übernommen. Schau ich mir auch noch mal an.

Statt das selber mit scp, cat usw. könnte man es auch mit ssh-copy-id probieren.

Auch das probiere ich dann ..

Danke Gruß Jochen

jochenv

(Themenstarter)

Anmeldungsdatum:
23. April 2016

Beiträge: 604

lubux schrieb:

jochenv schrieb:

... werde immer nach dem Passwort gefragt.

Versuch mal auf dem ssh-Client, mit der Option "PasswordAuthentication no".

was muss ich auf dem ssh-Client eingeben ?

Wie sind jetzt auf dem Server2, die Ausgaben von:

sudo sshd -t
systemctl status ssh

?

jochen@server08:~$ sudo sshd -t
jochen@server08:~$ systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-03-21 23:17:02 UTC; 21min ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 956 (sshd)
      Tasks: 1 (limit: 19002)
     Memory: 7.8M
        CPU: 158ms
     CGroup: /system.slice/ssh.service
             └─956 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

Mär 21 23:17:02 server08 systemd[1]: Started OpenBSD Secure Shell server.
Mär 21 23:18:12 server08 sshd[2039]: Authentication refused: bad ownership or modes for directory /home/jochen/.ssh
Mär 21 23:18:17 server08 sshd[2039]: Accepted password for jochen from 192.168.1.199 port 47072 ssh2
Mär 21 23:18:17 server08 sshd[2039]: pam_unix(sshd:session): session opened for user jochen(uid=1000) by (uid=0)
Mär 21 23:22:59 server08 sshd[2203]: Authentication refused: bad ownership or modes for directory /home/jochen/.ssh
Mär 21 23:23:04 server08 sshd[2203]: Accepted password for jochen from 192.168.1.199 port 57712 ssh2
Mär 21 23:23:04 server08 sshd[2203]: pam_unix(sshd:session): session opened for user jochen(uid=1000) by (uid=0)
Mär 21 23:25:48 server08 sshd[2280]: Authentication refused: bad ownership or modes for directory /home/jochen/.ssh
Mär 21 23:25:52 server08 sshd[2280]: Accepted password for jochen from 192.168.1.199 port 52646 ssh2
Mär 21 23:25:52 server08 sshd[2280]: pam_unix(sshd:session): session opened for user jochen(uid=1000) by (uid=0)
jochen@server08:~$ 

Gruß Jochen

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 13293

jochenv schrieb:

Mär 21 23:18:12 server08 sshd[2039]: Authentication refused: bad ownership or modes for directory /home/jochen/.ssh

Wie sind die Ausgaben von:

pwd
whoami
ls -la | grep ssh
ls -la .ssh

?

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 7816

jochenv schrieb:

[…]

jochen@server08:~$ systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-03-21 23:17:02 UTC; 21min ago
       Docs: man:sshd(8)
             man:sshd_config(5)
[…]

Mär 21 23:17:02 server08 systemd[1]: Started OpenBSD Secure Shell server.
Mär 21 23:18:12 server08 sshd[2039]: Authentication refused: bad ownership or modes for directory /home/jochen/.ssh
  • Wie sind die Besitzverhältnisse von /home/jochen/.ssh? Zeige:

    ls -l /home/jochen/.ssh
  • Und was sagt die Dokumentation dazu?

jochenv

(Themenstarter)

Anmeldungsdatum:
23. April 2016

Beiträge: 604

lubux schrieb:

Wie sind die Ausgaben von:

pwd
whoami
ls -la | grep ssh
ls -la .ssh

?

jochen@server08:~$ pwd
/home/jochen
jochen@server08:~$ cd .ssh
jochen@server08:~/.ssh$ pwd
/home/jochen/.ssh
jochen@server08:~/.ssh$ whoami
jochen
jochen@server08:~/.ssh$ ls -la | grep ssh
jochen@server08:~/.ssh$ ls -la .ssh
ls: cannot access '.ssh': No such file or directory
jochen@server08:~/.ssh$ cd ..
jochen@server08:~$ ls -la | grep ssh
-rw------- 1 jochen jochen    34 Mär 21 23:38 .lesshst
drwxrwxrwx 3 jochen jochen  4096 Mär 19 01:22 .ssh
jochen@server08:~$ ls -la .ssh
total 24
drwxrwxrwx 3 jochen jochen 4096 Mär 19 01:22 .
drwxr-x--- 7 jochen jochen 4096 Mär 21 23:38 ..
-rw-rw-r-- 1 jochen jochen 1894 Mär 19 02:01 authorized_keys
-rw------- 1 jochen jochen 2602 Mär 19 01:20 id_rsa
-rw-r--r-- 1 jochen jochen  569 Mär 19 01:20 id_rsa.pub
jochen@server08:~$ 

Gruß Jochen

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 13293

jochenv schrieb:

jochen@server08:~$ ls -la | grep ssh
-rw------- 1 jochen jochen    34 Mär 21 23:38 .lesshst
drwxrwxrwx 3 jochen jochen  4096 Mär 19 01:22 .ssh

Ändere die Rechte des .ssh-Verzeichnises, von 777 auf 700:

chmod 700 .ssh

jochenv schrieb:

jochen@server08:~$ ls -la .ssh
total 24
drwxrwxrwx 3 jochen jochen 4096 Mär 19 01:22 .
drwxr-x--- 7 jochen jochen 4096 Mär 21 23:38 ..
-rw-rw-r-- 1 jochen jochen 1894 Mär 19 02:01 authorized_keys
-rw------- 1 jochen jochen 2602 Mär 19 01:20 id_rsa
-rw-r--r-- 1 jochen jochen  569 Mär 19 01:20 id_rsa.pub

... und die der authorized_keys-Datei, von 664 auf 600:

chmod 600 authorized_keys

BTW: Warum befinden sich die Dateien id_rsa und id_rsa.pub, auf dem Server? Benutzt Du evtl. auch den ssh-Client auf dem Server, für eine ssh-Verbindung (per pubkey) zu einem anderen sshd-Server und hast deshalb, diese keys auf dem Server erzeugt/generiert??

Akedia

Anmeldungsdatum:
3. Januar 2018

Beiträge: 69

Unter 22.04 ist ssh-rsa nicht mehr in den pubkey accepted algorithms.

Entweder musst Du es ausdrücklich zulassen (sshd_config) oder gleich Ed25519 verwenden.

jochenv

(Themenstarter)

Anmeldungsdatum:
23. April 2016

Beiträge: 604

lubux schrieb:

Ändere die Rechte des .ssh-Verzeichnises, von 777 auf 700:

chmod 700 .ssh

... und die der authorized_keys-Datei, von 664 auf 600:

chmod 600 authorized_keys

Funktioniert ... Ich kann jetzt auf beide Server und auf den PC, vom Laptop aus zugreifen ohne das Passwort ein zu geben.

Jetzt werde ich, dass mal mit Ed25519 versuchen.

Wie ist dass, wenn ich jetzt mit einen zweiten Laptop auf die Server zugreifen möchte ohne das Passwort ein zu geben?

Gruß JOchen

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 13293

jochenv schrieb:

Wie ist dass, wenn ich jetzt mit einen zweiten Laptop auf die Server zugreifen möchte ohne das Passwort ein zu geben?

Der zweite Laptop ist dann der zweite bzw. ein anderer (ssh-)Client und für den musst Du seine eigene Schlüssel für die Anmeldung, generieren und benutzen.

jochenv

(Themenstarter)

Anmeldungsdatum:
23. April 2016

Beiträge: 604

lubux schrieb:

jochenv schrieb:

Wie ist dass, wenn ich jetzt mit einen zweiten Laptop auf die Server zugreifen möchte ohne das Passwort ein zu geben?

Der zweite Laptop ist dann der zweite bzw. ein anderer (ssh-)Client und für den musst Du seine eigene Schlüssel für die Anmeldung, generieren und benutzen.

Ja genau, ein anderer (ssh.)Client mit einen Schlüssel.

Auf dem Server würden dann ab zwei Dateien (authorized_keys) liegen, sprich mal müsste diese umbenennen z.B. authorized_keys.laptop1 und authorized_keys.laptop2.

Wie handhabt man dann den Zugriff ?

Vom Client

ssh jochen@laptop1 -i /home/jochen/.ssh/authorized_keys.laptop1 

oder besser auf dem Server eine config-Datei $HOME/.ssh/config hinterlegen

Host laptop1
    HostName 123.456.789.1
    User jochen
    IdentityFile /home/jochen/.ssh/authorized_keys.laptop1

Host laptop2
    HostName 123.456.789.2
    User jochen
    IdentityFile /home/jochen/.ssh/authorized_keys.laptop2

Wichtig ist mir, das hinterher auch sshfs mit Eintrag in der fstab funktioniert.

Gruß Jochen

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 13293

jochenv schrieb:

Ja genau, ein anderer (ssh.)Client mit einen Schlüssel.

Auf dem Server würden dann ab zwei Dateien (authorized_keys) liegen, sprich mal müsste diese umbenennen z.B. authorized_keys.laptop1 und authorized_keys.laptop2.

Nein, keine zwei Dateien. Du kannst in die authorized_keys-Datei, mehrere pubkeys (d. h. auch von verschiedenen ssh-Clients) eintragen.
Siehe auch: https://wiki.ubuntuusers.de/SSH/#Public-Key-Authentifizierung

Der (oder die) öffentliche(n) Schlüssel des Benutzers befindet sich dabei in der Datei ~/.ssh/authorized_keys des Zielsystems (Server).

jochenv schrieb:

Wie handhabt man dann den Zugriff ?

Vom Client

ssh jochen@laptop1 -i /home/jochen/.ssh/authorized_keys.laptop1 

oder besser auf dem Server eine config-Datei $HOME/.ssh/config hinterlegen

Host laptop1
    HostName 123.456.789.1
    User jochen
    IdentityFile /home/jochen/.ssh/authorized_keys.laptop1

Host laptop2
    HostName 123.456.789.2
    User jochen
    IdentityFile /home/jochen/.ssh/authorized_keys.laptop2

Mit dem Client musst Du in dessen config, den Pfad und die Schlüsseldatei des Clienten benutzen, z. B.:

IdentityFile ~/.ssh/<private_ssh_key>

und nicht die des Servers. Ist doch im UU-Wiki gut erklärt: https://wiki.ubuntuusers.de/SSH/#ssh-config

jochenv

(Themenstarter)

Anmeldungsdatum:
23. April 2016

Beiträge: 604

Soo...

Keys umgestellt auf Ed25519.

Zugriff auf Server ohne Passwort funktioniert. auf dem Server

tail -f /var/log/auth.log
Mar 27 00:50:31 server06 sshd[5554]: Accepted publickey for jochen from 192.168.1.199 port 35970 ssh2: RSA SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Mar 27 00:50:31 server06 sshd[5554]: pam_unix(sshd:session): session opened for user jochen by (uid=0)
Mar 27 00:50:31 server06 systemd-logind[1004]: New session 113 of user jochen.

Laptop ... sshfs: funktioniert auch ohne Passwort.

sshfs jochen@192.168.1.6:/mnt/video/ /media/server-video/ 

auf dem Server

tail -f /var/log/auth.log
ar 27 00:54:45 server06 sshd[5685]: Accepted publickey for jochen from 192.168.1.199 port 44062 ssh2: RSA SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Mar 27 00:54:45 server06 sshd[5685]: pam_unix(sshd:session): session opened for user jochen by (uid=0)
Mar 27 00:54:45 server06 systemd-logind[1004]: New session 116 of user jochen.

fstab ... Laptop:

...
sshfs#jochen@192.168.1.6:/mnt/video/ /media/server-video/  fuse uid=1000,gid=100,umask=0,allow_other,_netdev 0 0

aufruf

~$ sudo mount -a 
jochen@192.168.1.6's password: 
~$

auf dem Server

tail -f /var/log/auth.log
Mar 27 01:02:01 server06 CRON[5828]: pam_unix(cron:session): session opened for user root by (uid=0)
Mar 27 01:02:01 server06 CRON[5828]: pam_unix(cron:session): session closed for user root
Mar 27 01:02:16 server06 sshd[5826]: Accepted password for jochen from 192.168.1.199 port 46928 ssh2
Mar 27 01:02:16 server06 sshd[5826]: pam_unix(sshd:session): session opened for user jochen by (uid=0)
Mar 27 01:02:16 server06 systemd-logind[1004]: New session 124 of user jochen.

über die fstab wird der User root aufgerufen und nicht ich. Die Datei authorized_keys habe ich zuvor auf dem Server in /root/.ssh und die Datei id_ed25519 auf dem Laptop in /root/.ssh kopiert. Die Rechte sind auch noch auf 600.

Was habe ich noch vergessen ???

Gruß Jochen

Antworten |