Milosz Kosmider
2014-Dec-31 23:40 UTC
Using %n and other options in ssh_config IdentityFile
Hi folks, The ssh_config man page specifies that the IdentityFile directive can expand a number of special character sequences into useful values, for example %h into the value of the HostName directive. This is great, but I am finding that the ability to expand these variables under various directives is quite spotty: http://www.dtucker.net/openssh/percent_expand_opts.html This chart possibly no longer reflects the status quo, but it paints the intended picture. In particular, one feature I find is missing is the ability to use %n (host name as specified on command line) in my IdentityFile and User directives. That is the naming scheme I have been using for my identity files and users for years now, and it has resulted in a rather repetitive .ssh/config file that I would like to DRY up a little. Allowing %n in the above directives would allow me to replace this: Host * IdentitiesOnly yes PreferredAuthentications publickey Host superduper HostName superduper.com User superduper IdentityFile ~/.ssh/supersuper.id_rsa Host ultramega HostName ultramega.com User ultramega IdentityFile ~/.ssh/ultramega.id_rsa Host differentuser HostName differentuser.com User someonelse IdentityFile ~/.ssh/differentuser.id_rsa with this: Host * IdentitiesOnly yes PreferredAuthentications publickey IdentityFile ~/.ssh/%n.id_rsa User %n Host superduper HostName superduper.com Host ultramega HostName ultramega.com Host differentuser HostName differentuser.com User someonelse Thoughts? Is it reasonable? Is it feasible? If you folks think it's a good idea, but no one on the inside has the bandwidth to do it, I am willing to learn the ropes and submit a code change, but I cannot find the process for this on the http://www.openssh.com/ website. Cheers, Milosz System details: - OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014 - Ubuntu 14.04.1 LTS