SSH-Server mit BASH oder ZSH

S

Sloop

Erfahrenes Mitglied
7
Hi Leute,

ich habe mir mal aus dem Google-Store SSH-Server installiert um diesen auf meinem Android-device laufen zu lassen. Jedoch scheint das irgendeine besondere Eigenart von Shell zu sein, in welcher nicht mal TAB-completion durchgeführt wird. Habe verschiedene SSH-clients probiert (sowohl Linux, als auch windows-Clients wie z.B. putty), aber mit der Shell komme ich nicht so ganz klar. In der Applikation selbst kann ich auch nirgends wählen welche shell genutzt werden sollte.

Nun meine Frage: kennt ihr einen empfehlenswerten SSH-Server für Android, der auch BASH oder sogar ZSH unterstützt? Bash würde mir aber vollkommen ausreichen, natürlich mit autocompletion usw...

Freue mich auf eure Tips und bedanke mich im Voraus.
 
Wenn Du Busybox (Stericson) installierst, bekommst Du durch Aufruf von „busybox sh” eine Shell, die auch Autocompletion beherrscht. Ich habe auf meinen Androiden ein bash-Binary für ARM (ursprünglich von xda). Wenn Du möchtest, kann ich es rauskramen.

Ob es einen SSH-Server gibt (im Play Store ist ja eine ganze Reihe), der diese Shells auch automatisch aufruft, weiß ich allerdings nicht. Ich verwende adb und adb Wireless, um eine Shell zu bekommen.
 
Vllt. kannst du mir das mal näher erklären. Ich hab busybox(Stericson) installiert auf der normalen Methode durch INSTALL button (nicht die Smart-Variante wo alle symlinks gesetzt werden, das war mir zu heiss). Nun, auf dem "SSH Server" habe ich angegeben, dass "/system/bin/su" als Shell geladen wird, so bin ich root mit uid=0 und hab volle Rechte (Hinweis: Mein Droid3 ist gerootet).

Wenn ich nun in der Shell "busybox sh" eingebe erhalte ich keine Shell, sondern die Fehlermeldung "sh: applet not found".

Der Link zeigt hierhin:
root@cdma_solana:/system/xbin# ls -l sh
lrwxrwxrwx root root 2012-05-04 21:48 sh -> busybox

wieso funktioniert das also nicht?
 
Ja, mein Fehler. Bei Stericson (und BusyBox allgemein) heißt die Shell ash, nicht sh. Das vermeidet auch Konflikte mit der sh, die Android mitbringt. Woher Dein Symlink von sh zu busybox allerdings kommt, weiß ich nicht. Hattest Du vorher JRummy Busybox darauf? Hast Du ein Rom, das busybox mitbringt?

Und ruf doch mal busybox ohne Argumente auf. Die Stericson meldet sich mit
BusyBox v1.21.1-Stericson (2013-07-08 15:58:11 BST) multi-call binary.
 
Zuletzt bearbeitet:
Nein JRummy sagt mir nix. Ich habe Maverick 4.0 Custom ROM auf meinem Droid3. Ob da schon busybox drauf war weiß ich leider auch nicht. Wenn ich nun einfach "busybox" aufrufe erhalte ich ebenfalls

root@cdma_solana:/# busybox
BusyBox v1.21.1-Stericson (2013-07-08 15:58:11 BST) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2012.
Licensed under GPLv2. See source distribution for detailed
copyright notices.

Usage: busybox [function [arguments]...]
or: busybox --list[-full]
or: busybox --install [-s] [DIR]
or: function [arguments]...
[...]

Wie mache ich es nur, dass nun TAB-autocompletion funktioniert, usw... ? die Shell hat sich ja dadurch nicht geändert, ist immer noch dieselbe, diese typische Android-Shell sag ich jetzt mal...
EDIT: Wenn ich "busybox ash" wird tatsächlich die ash ausgeführt und auto-completion funktioniert. Also muss ich das als Startkommando in meinem SSH Server eintragen ,richtig?

PS: Wie kann ich die aktuelle Shell eigentlich auslesen? "echo $SHELL" liefert mir kein Ergebnis zurück.
 
Zuletzt bearbeitet:
Vermutlich reicht „ash” als Startkommando, weil das ein Link auf busybox sein dürfte.

Nein, „echo $SHELL” funktioniert bei einfacheren Shells nicht. Nimm
Code:
ps | grep $$
(was natürlich auch mindestens den ps und den grep anzeigt).
 

Ähnliche Themen

L
Antworten
26
Aufrufe
524
holms
holms
Q
Antworten
5
Aufrufe
1.716
Qualender
Q
W
Antworten
1
Aufrufe
216
maik005
maik005
Zurück
Oben Unten