From 2379a457a87afc9507f0f2a9664fcb47006a2aa2 Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Sun, 24 May 2020 23:02:20 -0700 Subject: Saner environment in SSH sessions, and automatically restart sshd. --- customize.sh | 2 ++ service.sh | 6 ++---- ssh/run | 18 ++++++++++++++++++ ssh/setup-connection | 19 +++++++++++++++++++ 4 files changed, 41 insertions(+), 4 deletions(-) create mode 100755 ssh/run create mode 100755 ssh/setup-connection diff --git a/customize.sh b/customize.sh index 90dc030..2f029b3 100644 --- a/customize.sh +++ b/customize.sh @@ -9,5 +9,7 @@ ssh-keygen -t rsa -b 2048 -N "" -f "$MODPATH"/ssh/ssh_host_rsa_key || exit 1 ui_print "Setting permissions..." set_perm "$MODPATH"/service.sh 0 0 0755 set_perm "$MODPATH"/ssh/authorized_keys 0 0 0644 +set_perm "$MODPATH"/ssh/run 0 0 0755 +set_perm "$MODPATH"/ssh/setup-connection 0 0 0755 set_perm "$MODPATH"/ssh/ssh_host_rsa_key 0 0 0600 set_perm "$MODPATH"/ssh/ssh_host_rsa_key.pub 0 0 0644 diff --git a/service.sh b/service.sh index 2f4b72b..96093ba 100755 --- a/service.sh +++ b/service.sh @@ -2,12 +2,10 @@ set -eux -MODDIR="${0%/*}" +export MODDIR="${0%/*}" until [ $(getprop sys.boot_completed) ]; do sleep 1 done -SSHD="$(which sshd)" - -nohup "$SSHD" -f "$MODDIR"/ssh/sshd_config -h "$MODDIR"/ssh/ssh_host_rsa_key -o "AuthorizedKeysFile $MODDIR/ssh/authorized_keys" > /dev/null & +"$MODDIR"/ssh/run diff --git a/ssh/run b/ssh/run new file mode 100755 index 0000000..470c91b --- /dev/null +++ b/ssh/run @@ -0,0 +1,18 @@ +#!/system/xbin/bash -l + +SSHD="$(which sshd)" + +while true; do + + nohup "$SSHD" \ + -D \ + -f "$MODDIR"/ssh/sshd_config \ + -h "$MODDIR"/ssh/ssh_host_rsa_key \ + -o "AuthorizedKeysFile $MODDIR/ssh/authorized_keys" \ + -o "ForceCommand $MODDIR/ssh/setup-connection" \ + > /dev/null & + wait + + sleep 1 + +done diff --git a/ssh/setup-connection b/ssh/setup-connection new file mode 100755 index 0000000..b0e59da --- /dev/null +++ b/ssh/setup-connection @@ -0,0 +1,19 @@ +#!/system/xbin/bash + +export ANDROID_ASSETS=/system/app +export ANDROID_BOOTLOGO=1 +export ANDROID_CACHE=/cache +export ANDROID_DATA=/data +export ANDROID_ROOT=/system +export ANDROID_RUNTIME_ROOT=/apex/com.android.runtime +export ANDROID_STORAGE=/storage +export ANDROID_TZDATA_ROOT=/apex/com.android.tzdata +export ASEC_MOUNTPOINT=/mnt/asec +export DOWNLOAD_CACHE=/data/cache +export EXTERNAL_STORAGE=/sdcard + +if [[ "$SSH_ORIGINAL_COMMAND" == "" ]]; then + exec /system/xbin/bash -i +else + exec /system/xbin/bash -c "$SSH_ORIGINAL_COMMAND" +fi -- cgit v1.2.3