curingas de configuração ssh para evitar digitar o nome de usuário

12

Eu ssh frequentemente em instâncias do openstack. Todas as instâncias estão em uma vlan e sub-rede dedicadas (10.2.xx). Todas as instâncias têm o mesmo nome de usuário (bob)

Eu me conecto assim:

ssh [email protected]

ou às vezes assim

ssh 10.2.x.x -l bob

É possível configurar meu laptop para usar automaticamente o nome bob quando ssh em qualquer vm na sub-rede 10.2.xx? Não quero usar automaticamente o bob quando estiver jogando em uma máquina em qualquer outra sub-rede.

Parece que a configuração do ssh não suporta caracteres curinga. (Corrija-me se eu estiver errada). Estou pensando que talvez um alias possa fazer isso, mas não tenho certeza de qual seria a sintaxe.

spuder
fonte

Respostas:

18

A página do manual ssh_config possui uma seção PATTERNSque detalha como você pode fazer isso, você pode usar caracteres curinga de *e ?. No meu ~/.ssh/config:

Host 172.16.*.*
   User drav

e depois emitindo ssh -vvv 172.16.13.1:

debug1: Reading configuration data /home/drav/.ssh/config
debug1: /home/drav/.ssh/config line 4: Applying options for 172.16.*.*
debug1: /home/drav/.ssh/config line 46: Applying options for *

Observe que essas correspondências são canônicas; portanto, se "fred.mynetwork.com" no DNS for 172.16.13.1, a emissão ssh fred.mynetwork.comnão corresponderá à Host 172.16.*.*entrada. Você sempre pode, no entanto, adicionar uma Host *.mynetwork.comentrada adicional para aplicar as mesmas opções quando um nome DNS é usado.

Drav Sloan
fonte
Sim, uma entrada Host 10.2*irá fazer o truque
Bananguin
Eu descobri que 10.2. *. * Fez com que minha chave fosse rejeitada. Mudar para 10.2. * Fez com que a conexão fosse bem-sucedida.
Spuder
1
Estranho, para mim o xx *. * Funciona: / Pelo menos, há seu comentário se as pessoas encontrarem problemas!
Drav Sloan