Existe uma maneira, em um único comando, de estabelecer uma conexão ssh do meu computador A, através do computador B, para o computador C, de modo que eu tenha acesso ao shell no computador C?
Um problema (que parece descartar simplesmente encaminhar a conexão ssh usando a opção -L) é que eu tenho a senha da conta no computador B e a conta no computador B está autorizada a conectar-se à conta no computador C, mas Não tenho a senha da conta no computador C.
Respostas:
Entendi que você deseja apenas fazer login no computador C, não encapsular nada de A a C. Então, isso deve fazer o truque:
Pode ser necessário digitar as senhas duas vezes, primeiro no computador B e depois no computador C, mas isso pode ser evitado usando a autenticação de par de chaves do ssh.
fonte
ssh -t computer-b "ssh -t computer-c 'ssh computer-d'"
: DVocê provavelmente deseja usar o ProxyCommand do SSH: http://benno.id.au/blog/2006/06/08/ssh_proxy_command
fonte
Se você estiver usando chaves ssh, poderá gerar uma nova chave para a máquina B e usá-la para conectar-se de A a B. Na máquina B, você pode adicionar
no
~/.ssh/authorized_keys
arquivo Isso significa que sempre que você se conectar a B com essa chave ssh, ele executará ossh C
comando.Não sei se isso funciona com o scp.
fonte
Usar
ProxyCommand
Veja
man ssh_config
. Eu recomendo fazer usoProxyCommand
. Vamos pegar o seu cenário original:Edite
~/.ssh/config
com o seguinte conteúdo.Agora você poderá acessar de forma transparente o Computador C.
Vantagens deste método
Mais seguro
Você só precisa que sua chave privada esteja no Computador A (seu computador). O
nc
comando atuará como um proxy no qual o SSH criptografará o tráfego. Isso inclui autenticação. É uma péssima idéia distribuir sua chave privada para vários servidores (como qualquer servidor comprometido com sua chave privada acaba comprometendo sua chave privada).Corresponde a vários destinos
Pode-se combinar vários computadores de destino usando
Host
. Um único computador ou qualquer computador dentro de uma rede específica (por exemplo,192.168.35.0/24
no exemplo acima) para proxy através do Computador B. Também serve como um alias.No exemplo acima, ele fará proxy através do Computador B para acessar o endereço IP.
Proxies da cadeia da margarida
Usando esse método, você pode encadear quantos proxies automáticos forem necessários. por exemplo, você pode adicionar um Computador D que só pode ser acessado pelo Computador C e funcionará de forma transparente.
ssh computerd
proxy automaticamente através do Computador C e Computador B nosssh_config
exemplos acima .fonte