Für bash:
$ ssh hostname "bash --noprofile"
Gibt es eine Möglichkeit, die Ausführung von zu umgehen oder zu verhindern, ~/.profile
wenn Sie sich bei einem entfernten Linux-Server mit ssh oder putty anmelden?
Für bash:
$ ssh hostname "bash --noprofile"
Wenn Sie alle Anmeldeskripts zu deaktivieren suchen, können Sie das verwenden --noprofile
Flag zu deaktivieren /etc/profile
, ~/.profile
usw. und --norc
deaktivieren ~/.bashrc
wie folgt:
$ ssh 127.0.0.1 "bash --noprofile --norc"
Denken Sie daran, dass Sie auch eine alternative Shell starten können, wenn eine verfügbar ist. Ich musste das benutzen, nachdem ich es vermasselt hatte chsh
:
$ ssh 127.0.0.1 sh
Dies führt Sie höchstwahrscheinlich zu einer leeren Hülle (keine Eingabeaufforderung). Geben Sie also ein ls
, um sicherzustellen, dass sie funktioniert.
Wenn sich Ihr Zielcomputer in einer Bash-Shell befindet:
user@host:/$ ssh hostname "bash --noprofile"
Alternativ können Sie auch ein anderes Profil verwenden
user@host:/$ ssh hostname "bash --noprofile; source ~/.other_profile"
Wie bereits erwähnt, funktioniert das Ausführen von bash mit dem --noprofile
Flag, wenn Sie die Verbindung initiieren, auch wenn Sie eine andere Shell verwenden, kann dies eine Option sein.
Eine Alternative wäre, wenn das Profilskript eine SSH-Verbindung selbst erkennt und sich entsprechend verhält. Da SSH-Verbindungen normalerweise eine Reihe von Umgebungsvariablen setzen, kann dies leicht überprüft werden. Es genügt, wenn Sie am Anfang Ihres Profils so etwas wie die folgenden Zeilen hinzufügen:
if [ "$SSH_CONNECTION" != "" ]; then echo Logging in with ssh return else echo Logging in with something that is not ssh fi # rest of your profile goes here
Der return
Rest des Skripts wird übersprungen, wenn die $SSH_CONNECTION
Umgebungsvariable festgelegt wird, die normalerweise erstellt wird, wenn eine SSH-Verbindung hergestellt wird. Andernfalls wird das Profil normal ausgeführt.
Beachten Sie, dass dies nur das betroffene Profilskript überspringt. Alle anderen Profilskripte (zB /etc/profile
:) werden weiterhin verarbeitet, es sei denn, Sie ändern sie gleich.
Versuchen Sie auch, ein FTP-Programm wie WinSCP zu verwenden, um die fehlerhafte Anmeldedatei zu löschen. Dies wird es verwerfen, aber Sie sollten sich zumindest an der Standard-Shell anmelden können