SSH / SFTP-Verbindungen schlagen unter OSX 10.8.2 - SSH-Agent-Problem unbemerkt fehl


7

Ich versuche, mich mit SSH oder SFTP bei einem Remotecomputer anzumelden.

  • Wenn ich es versuche, ssh u-indgo@ssh1.eu1.frbit.comantwortet die CLI einfach nicht. Ich bekomme eine leere neue Zeile, in die ich Zeichen eingeben kann, aber nichts weiter.
  • Wenn ich versuche, mit SFTPdenselben Anmeldeinformationen (die ich Transmitals SFTP-Client verwende) eine Verbindung herzustellen, bleibt diese nur für immer hängen und stellt keine Verbindung her.

Keine Fehler. Keine Antwort.

Das Problem ist nicht spezifisch für frbit.comeinen anderen Server, mit dem ich eine Verbindung herstellen möchte , und besteht weiterhin.

SSH-Client-Debugging

Wenn ich den ssh-Client mit dem Flag -vv ausführe, erhalte ich die folgende Ausgabe:

debug1: Reading configuration data /Users/matanya/.ssh/config
debug1: Reading configuration data /usr/local/Cellar/openssh/6.1p1/etc/ssh_config
debug2: ssh_connect: needpriv 0
debug1: Connecting to ssh1.eu1.frbit.com [46.137.57.195] port 22.
debug2: fd 3 setting O_NONBLOCK
debug1: fd 3 clearing O_NONBLOCK
debug1: Connection established.
debug1: identity file /Users/matanya/.ssh/id_rsa type 1
debug1: identity file /Users/matanya/.ssh/id_rsa-cert type -1
debug1: identity file /Users/matanya/.ssh/id_dsa type 2
debug1: identity file /Users/matanya/.ssh/id_dsa-cert type -1
debug1: identity file /Users/matanya/.ssh/id_ecdsa type -1
debug1: identity file /Users/matanya/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1
debug1: match: OpenSSH_5.5p1 pat OpenSSH_5*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.1
debug2: fd 3 setting O_NONBLOCK
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: kex_parse_kexinit: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-rsa,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-dss-cert-v00@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib
debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: mac_setup: found hmac-md5
debug1: kex: server->client aes128-ctr hmac-md5 none
debug2: mac_setup: found hmac-md5
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug2: dh_gen_key: priv key bits set: 140/256
debug2: bits set: 543/1024
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 31:4c:71:e0:56:14:04:0d:c7:b2:6c:fc:8a:42:33:2e
debug1: Host 'ssh1.eu1.frbit.com' is known and matches the RSA host key.
debug1: Found key in /Users/matanya/.ssh/known_hosts:2
debug2: bits set: 513/1024
debug1: ssh_rsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received

Debuggen von SSH-Agenten

UPDATE: Beim Durchlaufen meines lokalen (SSH-Client-Computers) habe system.logich Folgendes gefunden:

Mar  6 10:28:17 matanyas-imac com.apple.launchd.peruser.501[235] (org.openbsd.ssh-agent[574]): Exited with code: 1
Mar  6 10:28:17 matanyas-imac com.apple.launchd.peruser.501[235] (org.openbsd.ssh-agent): Throttling respawn: Will start in 10 seconds
Mar  6 10:28:27 matanyas-imac com.apple.launchd.peruser.501[235] (org.openbsd.ssh-agent[575]): Exited with code: 1
Mar  6 10:28:27 matanyas-imac com.apple.launchd.peruser.501[235] (org.openbsd.ssh-agent): Throttling respawn: Will start in 10 seconds

Wofür steht Code 1?

UPDATE: Ich habe die Datei gefunden, bei launchdder Probleme auftreten System/Library/LaunchAgents/org.openbsd.ssh-agent.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>org.openbsd.ssh-agent</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/ssh-agent</string>
        <string>-l</string>
    </array>
    <key>ServiceIPC</key>
    <true/>
    <key>Sockets</key>
    <dict>
        <key>Listeners</key>
        <dict>
            <key>SecureSocketWithKey</key>
            <string>SSH_AUTH_SOCK</string>
        </dict>
    </dict>
        <key>EnableTransactions</key>
        <true/>
</dict>
</plist>

Wenn ich renne, /usr/bin/ssh-agentbekomme ich:

SSH_AUTH_SOCK=/var/folders/pg/1g6_hnwx47bgqv5vcm1lq18h0000gn/T//ssh-01WuaHF32SlV/agent.2145; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2146; export SSH_AGENT_PID;
echo Agent pid 2146;

Was die -lFlagge ( <string>-l</string>) betrifft, gibt es in meiner Version von keine solche Flagge ssh-agent. Ausgänge:

ssh-agent: illegal option -- l

ps aux | grep SSH-Ausgänge:

matanya         1121   0.0  0.0  2441136   3280   ??  S     1:53PM   0:00.01 ssh -oNumberOfPasswordPrompts 1 -2 -lu-indgo -s ssh1.eu1.frbit.com sftp
matanya         1116   0.0  0.0  2441136   3280   ??  S     1:52PM   0:00.01 ssh -oNumberOfPasswordPrompts 1 -2 -lu-indgo -s ssh1.eu1.frbit.com sftp
matanya         1101   0.0  0.0  2441136   3280   ??  S     1:51PM   0:00.01 ssh -oNumberOfPasswordPrompts 1 -2 -lu-indgo -s ssh1.eu1.frbit.com sftp
matanya         1095   0.0  0.0  2441136   3280   ??  S     1:50PM   0:00.01 ssh -oNumberOfPasswordPrompts 1 -2 -lu-indgo -s ssh1.eu1.frbit.com sftp
matanya         1084   0.0  0.0  2441136   3280   ??  S     1:50PM   0:00.01 ssh -oNumberOfPasswordPrompts 1 -2 -lu-indgo -s ssh1.eu1.frbit.com sftp
matanya         1593   0.0  0.0  2439184   2092 s000  S+    2:36PM   0:00.00 grep ssh

SSH-Version: OpenSSH_5.8p2, OpenSSL 0.9.8r 8. Februar 2011

UPDATE: Ich habe festgestellt, dass es keine Rolle spielt, mit welchem ​​Benutzer ich mich beim Systemstart anfänglich anmelde - sei es mein eigener oder der Root - ssh funktioniert erst, wenn ich den Benutzer im Terminal ( oder ) explizit wechsle.su -su matanya

AKTUALISIEREN:

Ich habe die Codesignaturen überprüft. Ran: codesign -vv /usr/bin/ssh-agent:

empfangen:

/usr/bin/ssh-agent: code object is not signed at all
In architecture: x86_64

Sollte sein:

/usr/bin/ssh-agent: valid on disk
/usr/bin/ssh-agent: satisfies its Designated Requirement

AKTUALISIEREN:

Wenn ich renne :

eval `ssh-agent`
ssh-add

Ich kann mich mit ssh anmelden.


1
ssh -vv u-indgo@ssh1.eu1.frbit.com?
Quanten


1
Debuggen Sie ssh auf der Serverseite .
Michael Hampton

2
Wenn es allgemein für alle gilt, müssen Sie wirklich wirklich mit dem Debuggen auf der Serverseite beginnen, nicht auf der Clientseite.
Jenny D

2
Die Fehlerbehebung beginnt fast immer mit dem Durchsuchen der Protokolle. In diesem Fall sind dies wahrscheinlich /var/log/auth.log, möglicherweise /var/log/system.log oder / var / log / messages, abhängig von Ihrer Syslog-Konfiguration.
Jenny D

Antworten:


11

Grund für das stille Versagen beim Verbinden

Ihre system.logFehler zeigen, dass Sie ein Problem mit ssh-agentder lokalen Ausführung auf Ihrem iMac haben. Aus irgendeinem Grund wird es nicht ausgeführt, selbst wenn launchd versucht, es neu zu starten.

Wenn Sie versuchen, eine Verbindung mit einem SSH-Client (CLI oder Transmit) herzustellen, versuchen sie, eine Verbindung herzustellen ssh-agent, können jedoch keine Verbindung herstellen, da diese nicht ausgeführt wird. Daher ihr Warten ohne Ausgabe oder Eingabe.

Ich bin nicht sicher, was Ihren SSH-Agenten am Laufen hindert. Sie können jedoch Folgendes versuchen, um Ihren SSH-Client auf der CLI auszuführen und eine Verbindung zu Ihren Servern herzustellen:

unset SSH_AUTH_SOCK
ssh u-indgo@ssh1.eu1.frbit.com
# (you'll then be asked for you pass phrase if you use one)

Sie können sogar versuchen, Transmit über dasselbe Terminalfenster zu starten:

open /Applications/Transmit.app

Informationen zum Debuggen von SSH-Agenten

Wenn ssh-agent -lIhnen -lmitgeteilt wird, dass die Option illegal ist, bedeutet dies, dass es sich nicht um den ursprünglichen Apple-SSH-Agenten handelt, den Ihr System ausführen -lmöchte ( eine undokumentierte Apple-Funktion). Der ersetzende ssh-Agent macht den Start unglücklich. Dieser Blog-Beitrag enthält möglicherweise einige Erklärungen, warum.

Wenn Sie SSH-Tools von Drittanbietern haben (die von Brew, Macports oder anderen Kanälen stammen), würde ich empfehlen, diese aus dem Weg zu räumen oder zu aktualisieren (vorausgesetzt, sie sind startfähig, dh die -lOption ist vorhanden). Ein funktionierender ssh-agentAufruf sollte Folgendes beantworten:

antoine@amarante:~$ /usr/bin/ssh-agent -l
launch_msg: Operation not permitted

Es ist auch eine gute Idee zu überprüfen, ob Sie ssh-agent nicht von anderen Orten wie .bashrcanderen Sitzungsstart-Skripten aus starten . Das gleichzeitige Ausführen mehrerer und möglicherweise unterschiedlicher SSH-Agenten ist möglicherweise eine Problemquelle.


Danke. Das Deaktivieren von SSH_AUTH_SOCK hat bei mir funktioniert und zum Root-Benutzer gewechselt.
Matanya

Der ssh-Agent wird nur für Ihren eigenen Benutzer ausgeführt. Deshalb funktioniert auch das Wechseln zum Root-Benutzer. Sie müssen sich auf jeden Fall Ihre ssh-agent-Konfiguration ansehen, da diese Sie daran hindert, eine Verbindung zu Ihrem Server herzustellen.
Tonin

Welche OSX-Version verwenden Sie? Das org.openbsd.ssh-agent.plistsieht genauso aus wie meins, da ist nichts falsch. Sehen Sie noch etwas in Ihren Protokollen (in Console.app)? Haben Sie nicht mehrere ssh-agentProzesse gleichzeitig ausgeführt?
Tonin

Ich verwende den neuesten 10.8.2 OSX Lion. Wie teste ich auf mehrere ssh-agentProzesse?
Matanya

Was macht ps aux | grep sshAusgänge? Auf meinem 10.8.2 erhalte ich beim Ausführen ssh-agent -leine launch_msg: Operation not permittedFehlermeldung. Wenn Sie das nicht erhalten (aber stattdessen den unzulässigen Optionsfehler haben), liegt dies daran, dass der SSH-Agent, den Ihr System ausführen möchte, nicht launchdkompatibel ist. Haben Sie SSH-Tools von Drittanbietern installiert? brauen, macports, fink installiert?
Tonin

1

Würden Sie bitte die SSH-Verbindung mit einem anderen Programm wie Cyberduck überprüfen ?

Außerdem habe ich eine Lösung gefunden , bei der Sie Startagenten an folgenden Orten überprüfen müssen:

/Macintosh HD/Library/LaunchAgents/
/Macintosh HD/Library/LaunchDaemons/
/username/Library/LaunchAgents/
/username/Library/LaunchDaemons/

und überprüfen Sie dann fehlende ausführbare Dateien oder Dateien, ohne dass das Flag für ausführbare Dateien umgeschaltet wurde.

Meine lokale OpenSSH-Version ist OpenSSH_5.9p1, OpenSSL 0.9.8r, 8. Februar 2011

Sie können OpenSSH also auch über Macports ausprobieren oder brauen . Ich persönlich bevorzuge Macports und braue dann, wenn ich etwas brauche, das nicht standardmäßig in OS X enthalten ist.

AKTUALISIEREN:

  1. Versuchen Sie ssh -a u-indgo@ssh1.eu1.frbit.com, wie oben ausgeführt, jedoch mit deaktivierter Agentenweiterleitung
  2. Überprüfen Sie, ob Ihre Schlüsselbundzugriffsschlüssel korrekt sind
  3. Überprüfen Sie, ob Ihr Verzeichnis ~ / .ssh über die richtigen Berechtigungen verfügt (0600).
  4. Überprüfen Sie, ob Ihre Schlüssel korrekt sind.
  5. Versuchen Sie, "source` ssh-agent` "auszuführen, bevor Sie den Befehl ssh ausführen

UPDATE2:

Auf meinem System (OS X 10.8) sieht org.openbsd.ssh-agent.plist folgendermaßen aus:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>org.openbsd.ssh-agent</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/ssh-agent</string>
        <string>-l</string>
    </array>
    <key>ServiceIPC</key>
    <true/>
    <key>Sockets</key>
    <dict>
        <key>Listeners</key>
    <dict>
            <key>SecureSocketWithKey</key>
            <string>SSH_AUTH_SOCK</string>
        </dict>
    </dict>
        <key>EnableTransactions</key>
        <true/>
</dict>
</plist>

Auch ich ses dies:

$ /usr/bin/ssh-agent -l
launch_msg: Operation not permitted
$ shasum -a 256 /usr/bin/ssh-agent 
e21e2f23819b60f6288edda97427d98413c1bb737d49d313e2857f058627aab6  /usr/bin/ssh-agent

Sagen Sie mir bitte Informationen zu Berechtigungen, Ihrem ~ / .ssh / confing und Schlüsselbundzugriff.
Eir Nym

Ich habe org.openbsd.ssh-agent.plist von OS X 10.8
Eir Nym

Welches ist dein $ PATH?
Eir Nym

/usr/local/Cellar/php54/5.4.11/bin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/local/share:/usr/bin:/bin : / usr / sbin: / sbin: / usr / local / bin: / usr / local / git / bin
Matanya

Können Sie Ihren Pfad und den Bibliothekspfad überprüfen, um sicherzustellen, dass nichts entführt wurde, wie aus Ihrer Antwort hervorgeht? Möglicherweise entfernen Sie zuerst etwas von Ihrem Pfad außer / bin: / sbin: / usr / bin: / usr / sbin
Eir Nym
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.