Manipulando várias chaves / configurações SSH

2

Eu tenho duas chaves SSH 'pessoal' e 'trabalho'.

Com eles eu preciso para se conectar a um serviço: [email protected].

As chaves estão vinculadas a duas contas no service.com, no entanto, no SSH, ambas precisam usar o mesmo usuário 'usuário'. Portanto, não posso usar ~/.ssh/confige 'Host' para rotear as duas chaves para as contas corretas. Como resultado, coloquei a chave 'trabalho' em ~/.ssh/configuso Hoste comentei quando quisesse fazer coisas com a minha chave 'pessoal'.

Minha pergunta é: existe uma maneira melhor de lidar com isso?

Quando eu interajo com esse serviço, de source somefile.shqualquer maneira, é ideal ter alguma variável de ambiente para lidar com o roteamento, mas não consigo encontrar uma maneira de alterar, por exemplo, o caminho do arquivo de configuração ssh, usando variáveis ​​de ambiente.

Eu não uso sshdiretamente, mas através de uma ferramenta de terceiros.

Existe tal variável?

Estou no Linux (Ubuntu).

ojii
fonte

Respostas:

4

Você pode ter duas entradas ~/.ssh/confige definir as configurações necessárias:

Host work
User workid
HostName service.com

Host personal
User homeid
HostName service.com

Então você pode fazer ssh worke ssh personal.

Basicamente, o truque é: a Hostparte não precisa ser um nome de host DNS real, pode ser o que você quiser.

Kevin Panko
fonte
11
Eu deveria ter adicionado: na verdade, não posso usar o ssh diretamente. Isso é feito por meio de uma ferramenta de linha de comando de terceiros.
ojii
2
Isso significa que você não tem controle sobre o comando? Porque você também pode ssh -F myfilesubstituir$HOME/.ssh/config
Kevin Panko 10/11
11
Esta é a ferramenta que estou usando: github.com/epio/epio-client , especificamente este trecho de código: github.com/epio/epio-client/blob/master/epio/commands/run.py Portanto, não posso diretamente modificar a festa ssh, mas o ambiente dela.
ojii
11
Você pode modificar, $HOMEmas isso causará seus próprios problemas. Eu recomendo alterar esse código python para usar ssh -Fse você definir algo no ambiente.
precisa
11
apenas para esclarecer -F /path/to/other/ssh-config? Como em -F aponta para o arquivo de configuração? EDIT: Deixa man sshpra lá , fez a coisa e descobriu. Graças
ojii