Beliebt

SSH zu MacOS verweigert die Authentifizierung mit ├Âffentlichen Schl├╝sseln - macos, ssh, openssh, ssh-keys, macos-catalina

Wenn ich ssh von einem Desktop-Linux-Computer auf meinem MacOS-Laptop verwende, werden meine ├Âffentlichen Schl├╝ssel abgelehnt. Ich kann mich mit einem Passwort verbinden.

Ich habe mir mehrere ├Ąhnliche Fragen angesehen (z. 522652, 1335103 und 471753), aber keine bietet eine anwendbare L├Âsung, die ich noch nicht ausprobiert hatte.

Normalerweise w├╝rde ich zu diesem Zeitpunkt vermuten, dass ich den Schl├╝ssel nicht in meinem Agenten hatte oder dass der .ssh/authorized_keys Datei war nicht korrekt.

Vom Mac-Laptop (Ziel):

$ /bin/ls -ld ~/.ssh{,/authorized_keys}
drwx------  11 rik  staff   352 Oct 30 21:49 /Users/rik/.ssh
-rw-r--r--   1 rik  staff  1981 Oct 30 21:27 /Users/rik/.ssh/authorized_keys

Vom Linux-Desktop (Quelle):

$ ssh-add -L
ssh-rsa AAAAB3[...]2akN7r /Users/rik/.ssh/id_rsa
ssh-rsa AAAAB3[...]Ig+DS3 /home/rik/.ssh/id_rsa

Ich habe meine kopiert authorized_keys zu einem himbeer pi und bin in der lage zu jenem ssh. Verwenden ssh -vvv zu jeder Maschine gibt es noch weitere Hinweise.

Zum Himbeer-Pi:

...
debug1: rekey after 134217728 blocks
debug2: key: /home/rik/.ssh/id_rsa (0x55a9f8044310), agent
debug2: key: /Users/rik/.ssh/id_rsa (0x55a9f8049330), agent
debug2: key: /home/rik/.ssh/id_dsa ((nil))
debug2: key: /home/rik/.ssh/id_ecdsa ((nil))
debug2: key: /home/rik/.ssh/id_ed25519 ((nil))
debug3: send packet: type 5
debug3: receive packet: type 7
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/rik/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 60
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
...

Das ist es, was ich sehen m├Âchte (50 senden, 60 empfangen). Hier ist der gleiche Abschnitt, wenn Sie eine Verbindung zum Mac-Laptop herstellen:

...
debug1: rekey after 134217728 blocks
debug2: key: /home/rik/.ssh/id_rsa (0x5633631f5310), agent
debug2: key: /Users/rik/.ssh/id_rsa (0x5633631f6950), agent
debug2: key: /home/rik/.ssh/id_dsa ((nil))
debug2: key: /home/rik/.ssh/id_ecdsa ((nil))
debug2: key: /home/rik/.ssh/id_ed25519 ((nil))
debug3: send packet: type 5
debug3: receive packet: type 7
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug3: start over, passed a different list publickey,password,keyboard-interactive
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/rik/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Offering RSA public key: /Users/rik/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /home/rik/.ssh/id_dsa
...

Dies zeigt, dass der Server bereit ist zu akzeptieren publickey im Allgemeinen aber nicht diese spezifischen Schl├╝ssel. Auch hier suche ich nach einer serverseitigen Fehlkonfiguration. Unter MacOS befindet sich die Konfiguration in /private/etc/ssh.

$ grep "^[^#]" /private/etc/ssh/sshd_config
AuthorizedKeysFile  .ssh/authorized_keys
UsePAM yes
AcceptEnv LANG LC_*
Subsystem   sftp    /usr/libexec/sftp-server

Daran sehe ich nichts auszusetzen, aber vielleicht ist das Problem da.

Als n├Ąchstes habe ich mir die Konsolenausgabe angesehen, um zu sehen, ob dort etwas auftaucht. In der Konsolen-App bekomme ich immer diese 6 Zeilen ssh Versuch:

error   22:25:56.376189-0400    sshd    send failed: Invalid argument
error   22:25:56.376624-0400    sshd    send failed: Invalid argument
error   22:25:56.376676-0400    sshd    send failed: Invalid argument
error   22:25:56.400722-0400    kernel  Sandbox: sshd(1215) deny(1) mach-lookup com.apple.logd
error   22:25:56.400952-0400    kernel  Sandbox: sshd(1215) deny(1) mach-lookup com.apple.diagnosticd
error   22:25:56.689723-0400    kernel  Sandbox: com.apple.WebKit(37255) deny(1) mach-lookup com.apple.CoreDisplay.Notification

Sehen Sandbox in das und bemerken eine Zeile aus einer ├Ąlteren Version von meinem sshd_config Ich habe es kopiert und ssh neu gestartet.

Die Linie:

UsePrivilegeSeparation sandbox      # Default for new installations.

So starten Sie ssh neu:

# launchctl stop com.openssh.sshd
# launchctl start com.openssh.sshd

Dies hatte keine Auswirkung, daher habe ich diese Konfigurations├Ąnderung r├╝ckg├Ąngig gemacht. Eine diesbez├╝gliche Suche f├╝hrte mich Hier. Ich habe best├Ątigt, dass "Einstellungen | Sicherheit & Datenschutz | Datenschutz | Vollst├Ąndiger Festplattenzugriff | sshd-keygen-wrapper" aktiviert ist.

Ich habe k├╝rzlich auf meinem Laptop ein Upgrade auf Catalina durchgef├╝hrt. Ich habe seit einiger Zeit nicht mehr mit ssh eine Verbindung hergestellt, aber ich wei├č, dass es in der Vergangenheit funktioniert hat.

Ich dachte, dass Catalina mehr geworden sein k├ÂnnteEinschr├Ąnkung der Arten von ├Âffentlichen Schl├╝sseln, die akzeptiert werden. Also habe ich einen neuen Schl├╝ssel in einer anderen Datei generiert, meinen authorized_keys den ├Âffentlichen Schl├╝ssel hinzugef├╝gt, meinem Agenten den Schl├╝ssel hinzugef├╝gt, ├╝berpr├╝ft, ob der Agent den neuen Schl├╝ssel hat, und es erneut versucht. Wenn gr├Â├čere Einschr├Ąnkungen des Schl├╝sseltyps die Ursache sind, haben sie das Upgrade vergessen ssh-keygen Die Standardeinstellungen stimmen ├╝berein. (Aber ich werde nicht sagen, dass Apple so etwas nicht tun w├╝rde.)

Ich bin ratlos, herauszufinden, wie ich komme publickey Authentifizierung funktioniert wieder. Anregungen w├Ąren willkommen.

Antworten:

1 f├╝r Antwort Ôäľ 1

Vielen Dank an Spiff, der mich in die richtige Richtung gef├╝hrt hat. Das Problem waren die Berechtigungen meines Homeverzeichnisses, nicht das .ssh Unterverzeichnis.

Ich habe gesperrt sshd Deaktivieren Sie vor├╝bergehend das Kontrollk├Ąstchen Einstellungen | Freigabe | Remote-Anmeldung. Dann rannte ich /usr/sbin/sshd -d um eine ausf├╝hrliche Ausgabe zu erhalten. Es enthielt diese Zeile:

Authentication refused: bad ownership or modes for directory /Users/rik

Also habe ich die Erlaubnis zu ge├Ąndert 755 und es funktioniert jetzt.

Nochmals vielen Dank an Spiff.


0 f├╝r Antwort Ôäľ 2

Typische Mac-Fehlerbehebungstechnik ...Haben Sie die Remoteverwaltung aktiviert und deaktiviert? Ich habe ein ├Ąhnliches Problem, das ich mit VNC nicht l├Âsen kann (das lose mit SSH-Tunneln verbunden ist). Das VNC-Kennwort l├Ąsst keine Verbindung zu, der Benutzername und das Kennwort jedoch.

Ich frage mich auch, ob dies eine Sicherheitsbeschr├Ąnkung ist.