Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

PATCH: _ssh: update to 7.0



I remembered why those * were there that I removed in the previous patch,
ssh lets you say -ooptionname= without the space. I had to remove it
because *port matched transport too, so now I just strip -o specifically
before matching.

I don't think all the added short options are new, just missed those
before. The +append syntax is new though, as well as the option.

We should probably use ssh -Q in places that have hardcoded keys etc
currently.

---
 Completion/Unix/Command/_ssh | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/Completion/Unix/Command/_ssh b/Completion/Unix/Command/_ssh
index c2514a1..fae5679 100644
--- a/Completion/Unix/Command/_ssh
+++ b/Completion/Unix/Command/_ssh
@@ -1,6 +1,6 @@
 #compdef ssh slogin=ssh scp ssh-add ssh-agent ssh-keygen sftp ssh-copy-id
 
-# Completions currently based on OpenSSH 6.9 (released on 2015-06-30).
+# Completions currently based on OpenSSH 7.0 (released on 2015-08-11).
 #
 # TODO: update ssh-keygen (not based on 5.9)
 # TODO: sshd, ssh-keyscan, ssh-keysign
@@ -39,8 +39,10 @@ _ssh () {
       '(-P)-b+[specify interface to transmit on]:bind address:_bind_addresses' \
       '-D+[specify a dynamic port forwarding]:dynamic port forwarding:->dynforward' \
       '-e+[set escape character]:escape character (or `none'\''):' \
+      '-E[append log output to file instead of stderr]:_files' \
       '(-n)-f[go to background]' \
       '-g[allow remote hosts to connect to local forwarded ports]' \
+      '-G[output configuration and exit]' \
       '-I+[specify smartcard device]:device:_files' \
       '-K[enable GSSAPI-based authentication and forwarding]' \
       '-k[disable forwarding of GSSAPI credentials]' \
@@ -56,11 +58,12 @@ _ssh () {
       '(-v)*-q[quiet operation]' \
       '*-R[specify remote port forwarding]:remote port forwarding:->forward' \
       '-S+[specify location of control socket for connection sharing]:path to control socket:_files' \
+      '-Q[query parameters]:parameter type:((cipher\:"supported symmetric ciphers" cipher-auth\:"supported symmetric ciphers that support authenticated encryption" mac\:"supported message integrity codes" kex\:"key exchange algorithms" key\:"key types" protocol-version\:"supported SSH protocol versions"))' \
       '(-1)-s[invoke subsystem]' \
       '(-1 -t)-T[disable pseudo-tty allocation (protocol version 2 only)]' \
       '(-T)-t[force pseudo-tty allocation]' \
       '-V[show version number]' \
-      '(-q)*-v[verbose mode]' \
+      '(-q)*-v[verbose mode (multiple increase verbosity, up to 3)]' \
       '-W[forward standard input and output to host]:stdinout forward:->hostport' \
       '-w[request tunnel device forwarding]:local_tun[\:remote_tun] (integer or "any"):' \
       '(-x -Y)-X[enable (untrusted) X11 forwarding]' \
@@ -147,7 +150,14 @@ _ssh () {
     case "$lstate" in
     option)
       if compset -P '*='; then
-        case "$IPREFIX" in
+        case "${IPREFIX#-o}" in
+          (#i)(ciphers|macs|kexalgorithms|hostkeyalgorithms|pubkeyacceptedkeytypes|hostbasedkeytypes)=)
+          if ! compset -P +; then
+            _wanted append expl 'append to default' compadd + && ret=0
+          fi
+          ;;
+        esac
+        case "${IPREFIX#-o}" in
         (#i)(afstokenpassing|batchmode|canonicalizefallbacklocal|challengeresponseauthentication|checkhostip|clearallforwardings|compression|enablesshkeysign|exitonforwardfailure|fallbacktorsh|forward(agent|x11)|forwardx11trusted|gatewayports|gssapiauthentication|gssapidelegatecredentials|gssapitrustdns|hashknownhosts|hostbasedauthentication|identitiesonly|kbdinteractiveauthentication|(tcp|)keepalive|nohostauthenticationforlocalhost|passwordauthentication|permitlocalcommand|proxyusefdpass|pubkeyauthentication|rhosts(|rsa)authentication|rsaauthentication|streamlocalbindunlink|usersh|kerberos(authentication|tgtpassing)|useprivilegedport|visualhostkey)=*)
           _wanted values expl 'truth value' compadd yes no && ret=0
           ;;
@@ -234,7 +244,7 @@ _ssh () {
         (#i)hostname=*)
           _wanted hosts expl 'real host name to log into' _ssh_hosts && ret=0
           ;;
-        (#i)(hostbasedkeytypes|hostkeyalgorithms)=*)
+        (#i)(hostbasedkeytypes|hostkeyalgorithms|pubkeyacceptedkeytypes)=*)
           _values -s , 'key types' \
               'ecdsa-sha2-nistp256-cert-v01@xxxxxxxxxxx' \
               'ecdsa-sha2-nistp384-cert-v01@xxxxxxxxxxx' \
@@ -450,6 +460,7 @@ _ssh () {
                 Protocol \
                 ProxyCommand \
                 ProxyUseFdpass \
+                PubkeyAcceptedKeyTypes \
                 PubkeyAuthentication \
                 RekeyLimit \
                 RemoteForward \
-- 
2.4.0



Messages sorted by: Reverse Date, Date, Thread, Author