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

Re: tab completion for ssh using FQDN



On 7/17/19 1:41 PM, TJ Luoma wrote:
I have several hosts defined in ~/.ssh/config like so:

Host myhost
        HostName myhost.luo.ma
        User myuser
        Port 5555

Something changed, because now when I type "ssh my[tab]" I get "ssh myhost.luo.ma" instead of "ssh myhost" which then fails because it isn't using the port specified in ~/.ssh/config.

Tweak your Host entry to include the FQDN, e.g.:

Host myhost.luo.ma myhost

I don't think the order matters. I personally like to put the FQDN first and then aliases after. (I pattern off of the hosts file.)

I _think_ it has to do with the ~/.ssh/known_hosts file, because if I delete the entry from that file, tab completion seems to work as I expect.

I've looked around for a solution, and it appears that if I add this line:

        HostKeyAlias myhost

then the short hostname gets uses for the known_hosts file, but I'm not sure if that's a "good" solution or not.

I think that's functionally (part of) defining a new host by the alternate name and recognizing the alternate name's host key.

I'd suggest trying adding aliases to the Host entry, as described above.

I've done things like this:

Host FQDN alias project<#>-db customer<#>-db current-problem-child

The project<#>-db is nice so that I can easily ssh into a project's DB server without needing to mentally translate to the host name. I can literally do the following:

ssh project815-db

Is there a way to tell zsh to only do tab-completion for ssh out of ~/.ssh/config and ignore ~/.ssh/known_hosts ?

I'm sure there is a way. I don't know what it is. I've not dealt with this issue in about 6 years.



--
Grant. . . .
unix || die

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature



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