Hello,

How about adding:

alias labssh='ssh -i ~/.ssh/id_rsa.work'

to your shell profile (.bashrc or whatever)?  Then you can just do
'labssh <ip-address>' and the alias expansion makes ssh use the
appropriate ID file.

Regards,

Geoff.

Geoff Back
What if we're all just characters in someone's nightmares?

On 26/11/2022 13:14, Feng Shao wrote:
> Thanks for the reply Petr.
> Let me explain more about the motivation: I am a developer and our
> testers test the code on various environments, including VMs on cloud
> and k8s worker nodes from cloud providers. These machines and IPs are
> not provisioned/allocated by dnsmasq. For cost reason, these
> environments only lives for a short period of time, like one week or
> so, and testers provision these IPs directly without awareness of
> network administrators, that’s also why we don’t configure hostname
> for these machines in DNS system. Also I can not know in advance the
> list of possible IPs.
>
> Whenever tester find some issue or need help, they give me the IP of
> the environments and I need to ssh to that environment. Because I will
> probably login to that same machine several times since the testers
> are testing my code on that machine recently, I want to setup
> passwordless login. So I  normally ssh-copy-id -i <~/.ssh/id_rsa.work
> <http://id_rsa.work>> <IP>first, then ssh to that machine. In order to
> instruct ssh to use my ssh key when connecting to that IP, I have
> below lines in my .ssh/config:
>
> Host *.mylab
>   User root
>   IdentityFile ~/.ssh/id_rsa.wor <http://id_rsa.work/>k
>
> And lines like below in /etc/hosts:
> address=/123.123.123.123
> <http://123.123.123.123>.mylab/123.123.123.123 <http://123.123.123.123/>
> address=/123.123.123.12 <http://123.123.123.123>4.mylab/123.123.123.12
> <http://123.123.123.123/>4
>
> So that I can now “ssh 123.123.123.123.mylab” 
>
> As you can see, the problem here is, whenever a new IP comes, I need
> to add a new entry in /etc/hosts. So what I want is any <IP>.mylab is
> resolved to <IP>.
>
> A key pair can be specified when creating VM on cloud, but I can not
> ask every tester add my ssh key pair when creating VM.
>
>
> Petr Menšík <pemen...@redhat.com>于2022年11月25日 周五19:52写道:
>
>     Did you know that dnsmasq registers all hosts by their name, if
>     they send their own hostname when requesting DHCP from dnsmasq?
>     Just use domain=mylab and have that host send hostname. It would
>     make using names possible without any additional configuration.
>
>     I do not get what is the advantage of having IP suffixed by some
>     domain. It looks like IP address, but it is even longer. Names of
>     machines should be easy to remember or use, I doubt that would be
>     the case here.
>
>     I think we have new feature conf-script, which can generate
>     dnsmasq configuration on the output. But I doubt we have a
>     possible code for what you describe. Could you please describe
>     more about intended usage? Why isn't using just hostname for each
>     host enough? Using dhcp-host seems enough for similar uses.
>
>     I think DLZ plugins for BIND9 are able to do similar things to
>     your request, but that would be very heavy-weight solution. I
>     think more motivation for your current design should be shared,
>     because I do not understand advantage of your solution.
>
>     Cheers,
>     Petr
>
>     On 11/23/22 06:47, Feng Shao wrote:
>>     There are a bunch of machines in our lab, and we normally don't
>>     have DNS records configured for them, only accessing by IP. In
>>     order to ssh to them with key auth, I have a config in my
>>     .ssh/config like 
>>
>>     Host *.mylab
>>       User root
>>       IdentityFile ~/.ssh/id_rsa.work <http://id_rsa.work/>
>>
>>     and I have some "address=/123.123.123.123
>>     <http://123.123.123.123>.mylab/123.123.123.123
>>     <http://123.123.123.123/>" line in dnsmasq.conf. The problem here
>>     is I need to add an entry whenever a new IP comes.
>>
>>     Can this configuration be dynamically? For example,
>>     "address=/*.mylab/somecmd %1", where "somecmd" is a external
>>     command and %1 will be replaced by the name in A/AAAA request. So
>>     that for any DNS request to *.mylab, dnsmasq invoke this external
>>     command and pass the name as argument, the output of external
>>     command, which will be interpreted as IPv4/IPv6 addr then
>>     responsed to client?
>>
>>     _______________________________________________
>>     Dnsmasq-discuss mailing list
>>     Dnsmasq-discuss@lists.thekelleys.org.uk
>>     https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss
>
>     -- 
>     Petr Menšík
>     Software Engineer, RHEL
>     Red Hat, https://www.redhat.com/
>     PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB
>
>     _______________________________________________
>     Dnsmasq-discuss mailing list
>     Dnsmasq-discuss@lists.thekelleys.org.uk
>     https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss
>
>
> _______________________________________________
> Dnsmasq-discuss mailing list
> Dnsmasq-discuss@lists.thekelleys.org.uk
> https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss
_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

Reply via email to