2016-07-28 27 views
0

Ich habe einen Arch-Server, der auf einer VMWare-VM ausgeführt wird. Ich verbinde mich über eine Firewall, die SSH-Verbindungen von Port X zu Port 22 auf dem Server weiterleitet. Gestern habe ich den Fehler "Bash: Fork: Ressource vorübergehend nicht verfügbar" erhalten. Ich kann mich als root einloggen und Dinge ohne Probleme verwalten, aber es scheint, dass wenn ich mich als normaler Benutzer einschalte, die ssh-Sitzung jetzt Hunderte von ssh-agent/bin/bash-Sitzungen hervorbringt. Dies verbraucht wiederum alle Threads und Dateideskriptoren (was ich sagen kann) auf dem System und macht es unbrauchbar. Die kleinen Informationen, die ich bis jetzt gefunden habe, sagen mir, dass ich eine Art von Schleife haben muss, aber das ist erst gestern passiert, möglicherweise als ich Updates ausführte. An dieser Stelle bin ich offen für Vorschläge.SSH-Verbindungen erzeugen Hunderte von ssh-agent/bin/bash-Instanzen

+1

Sehen Sie, ob etwas in Ihren Shell-Startup-Dateien tatsächlich eine Shell hervorbringt (d. H. Rekursiv). – Kusalananda

+0

Ich sehe nichts. Ich habe gerade festgestellt, dass es im .x2GO-Verzeichnis eine Reihe symbolischer Links zu/tmp gibt. Die Dateien darin sind alle ssh-Socket-Dateien. X2G0 verwendet SSH, um auch eine Verbindung zum Server herzustellen. Aber ich habe das Problem mit regulären SSH-Verbindungen über die Befehlszeile dupliziert. –

+1

Es stellte sich heraus, dass Sie Recht hatten. Ich entfernte die Zeile in meinem .bashrc für ssh-agent/bin/bash und löste das Problem. Ich benutze diesen Server seit Monaten ohne Probleme und habe diese Datei seit der Installation nicht berührt, also bin ich mir nicht sicher, warum es ein Problem war. Aber das hat es behoben. Vielen Dank! –

Antwort

1

Einer Ihrer Shell-Initialisierungsdateien wird Laichen wahrscheinlich eine Schale, die, wenn die Shell-Initialisierung Lesen von Dateien wird eine Shell laichen usw.

Sie ssh-agent /bin/bash erwähnt. Putting dieses in .bashrc wird auf jeden Fall zu Problemen führen, da dies ssh-agent instruiert bash zum Laichen ...

Verwenden Sie stattdessen so etwas wie

if [[ -z "$SSH_AUTH_SOCK" ]]; then 
    eval $(ssh-agent) 
fi 

in .bashrc (oder .xinitrcoder.xsession für Systeme mit grafischer Logins).

Oder vielleicht (ungetestet):

if [[ -z "$SSH_AUTH_SOCK" ]]; then 
    ssh-agent /bin/bash 
fi 

in .bash_profile.