Re: Another question about this shell magic...

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

 



On Thu, 1 Oct 2020, Ingo Schwarze wrote:

> Hi Martin,
>
> Martin Drescher wrote on Thu, Oct 01, 2020 at 02:06:22PM +0200:
>
> > Can someone tell how this magic works?
>
> No, and this question is off-topic on this list because it is not
> related to OpenSSH.

It's most definitely related to OpenSSH, specifically how the shell
interacts with it.

In answer to the question: many operating system distributions
(especially Linux) have configured their shells with tab-completion
helpers that are contextually invoked by the shell after specific
commands. Another example of this might be "git <tab>" returning a list
of git subcommands.

In this case, the helper is probably looking at the contents of your
~/.ssh/known_hosts or, with less likelihood, ~/.ssh/config's Host/Match
configuration. I don't mind these, though they can be pretty brittle in
the face of ssh_config aliases and HashKnownHosts settings, etc.

Some shell configurations go further and will configure tab-expansion
helpers for things like scp remote paths, e.g. "scp host:foo<tab>" will
actually ssh to the remote host, run "ls foo*" and use the result to
offer a set of completions.

I don't like these because they implicitly perform heavy-weight
operations (establishing a connection to a remote host) without the
user really knowing what's going on. Note that, depending on your
configuration, establishing such a connection can have significant
security consequences - e.g. consider agent-forwarding.

Anyway, check your shell configuration. On many Linux distributions, you
might want to start with /etc/bash_completion*

-d
_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@xxxxxxxxxxx
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev



[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux