ssh kitten: Support system where the login shell is a non-POSIX shell

Now the kitten passes its script to /bin/sh and detects the login shell
using various strategies based on the value of $USER on the remote
machine. The strategies are tried one after another till one succeeds:

1) getent passwd $USER
2) id -P
3) python pwd module
4) parsing /etc/passwd

The hope is that these strategies will fail on fewer systems than
relying on the login shell being POSIX compliant.
This commit is contained in:
Kovid Goyal
2021-06-21 16:30:49 +05:30
parent 32d275c138
commit fd4c7a4ed2
3 changed files with 74 additions and 15 deletions

View File

@@ -16,6 +16,8 @@ To update |kitty|, :doc:`follow the instructions <binary>`.
- Fix a regression in 0.21.0 that broke rendering of private use Unicode symbols followed
by spaces, when they also exist not followed by spaces (:iss:`3729`)
- ssh kitten: Support system where the login shell is a non-POSIX shell
- Add support for the XTVERSION escape code
- macOS: Fix a regression in 0.21.0 that broke middle-click to paste from clipboard (:iss:`3730`)

View File

@@ -55,7 +55,8 @@ type it each time::
alias ssh="kitty +kitten ssh"
If for some reason that does not work (typically because the server is using a
non POSIX compliant shell), you can try using it with python instead::
non POSIX compliant shell as ``/bin/sh``), you can try using it with ``python``
instead::
kitty +kitten ssh use-python myserver