chaves de autorização com máquina gateway

0

Estou tentando configurar chaves de autorização para que eu possa efetuar login em uma máquina remota sem uma senha.

A complicação é que eu tenho que passar por uma máquina de gateway da universidade (machine1) antes de poder chegar à máquina remota (machine2).

Eu criei chaves de autorização em minha máquina local e adicionei a chave pública à lista de chaves autorizadas na máquina1. Isto é bom; Agora posso ssh em machine1 sem uma senha.

Não estou claro no próximo passo. Eu agora:

(a) precisa gerar mais chaves na máquina1 e adicioná-las às authorized_keys na máquina2? ou (b) colocar a mesma chave pública (da minha máquina local) que acabei de adicionar à máquina1, à máquina2?

    
por user1551817 09.06.2016 / 05:10

1 resposta

2

Você pode fazer as duas coisas basicamente.

a) mais chaves

Você pode ir em frente e criar chaves em machine1 e copiar a chave pública para o arquivo machine2 ' /home/yourusername/.ssh/authorized_keys '.

Se você não decidir pela alternativa abaixo, sugiro este método. Se alguém obtiver sua chave privada para machine2 on machine1 , ele ainda não terá sua chave privada em seu cliente para machine1 .

b) mesma chave

Você também pode pegar a chave pública que copiou para machine1 e colocá-la em machine2 . Nesse caso, você também deve copiar sua chave privada para machine1 para com êxito ssh de machine1 para machine2 .

Eu não recomendaria isso porque sua única chave privada agora está disponível em um sistema remoto.

Alternativa

c) ProxyCommand

Mantenha a chave privada em particular no seu cliente. Copie apenas a chave pública para cada /home/yourusername/.ssh/authorized_keys de cada máquina. No seu cliente, configure /home/yourusername/.ssh/config (supondo que você use o Linux no seu cliente):

Host machine1
    HostName machine1.domain.tld
    Port 22   # or whichever port that is in your scenario
    User yourusername
    IdentityFile ~/.ssh/machine1privatekey

Host machine2
    HostName hostname   # resolves in the local network? If not, give its IP address here
    Port 22
    User yourusername
    IdentityFile ~/.ssh/machine1privatekey # the same as above
    ProxyCommand ssh -W machine2:22 machine1

Nesse caso, um simples ssh machine2 conectará você à máquina2 via máquina1 sem a necessidade de primeiro ssh para máquina1 e, em seguida, manualmente ssh para máquina2.

Vantagem adicional: sua chave privada precisa apenas se sentar no seu cliente e não em um sistema remoto.

Editar:

d) Encaminhamento de agente SSH

Você poderia, provavelmente, manter as duas chaves privadas para machine1 e machine2 em seu cliente e usar o encaminhamento de agente ssh para tornar machine1 encaminhar sua chave privada do cliente para machine2 . Isso é considerado risky , e eu não estou usando, mas deve ser algo nesse sentido:

$ ssh-agent /bin/bash
$ ssh-add ~/.ssh/machine*privatekey
$ ssh -A -p 22 [email protected] 'ssh -p 22 yourusernameqmachine2'
    
por 09.06.2016 / 08:30

Tags