Если часовой пояс составляет целое число часов (Дата GNU):
$ date +%-:::z
-4
В противном случае (предположим -0427):
$ date +%-:::z | awk -F: '{x=$1;printf("%s%.2f\n",x>=0?"+":"-",(x>=0?x:-x)+$2/60)}'
-4.45
Или, для более старых реализаций с более ограниченной датой, используйте простой:
$ date +%z | awk -F '' '{printf("%s%.2f\n",$1,$2$3+($4$5)/60)}'
-4.45
Это все еще не POSIX, потому что нулевая FS не определена для POSIX awk.
Для POSIX нам нужно разделить символы с помощью sed:
$ date +%z |\
sed -E 's/(.)(..)(..)/\1 \2 \3/' |\
awk '{ printf("%s%.2f\n",$1,$2+$3/60) }'
Попробуйте dropbear , это крошечный SSH-сервер.
Пакет установщика не будет работать в WSL, поэтому соберите его из исходного кода. Загрузите и распакуйте исходный код где-нибудь, а затем соберите и установите вот так:
./configure
make
make install
Далее вам нужно создать серверные ключи для dropbear:
mkdir /etc/dropbear
cd /etc/dropbear
sudo dropbearkey -t rsa -f dropbear_rsa_host_key
sudo dropbearkey -t dss -f dropbear_dss_host_key
Затем запустите его:
sudo /usr/sbin/dropbear -F
Теперь вы можете подключаться к WSL по SSH! (Я тестировал на виртуальной машине openSUSE, работающей на той же машине. Может быть переадресация портов и прочее, с чем можно бороться за внешний доступ.)
Также должна быть возможность запускать dropbear в фоновом режиме или добавлять его как постоянную вещь в ваш запуск -возможно, кто-то может предоставить более подробную информацию об этом, если знает, как это сделать.