Automatize o SSH e o SCP do multi-salto com senhas

0

Eu quero acessar algum host do meu computador pessoal, mas preciso acessar primeiro um servidor intermediário, porque o destino final não pode ser visto da Internet pública.

A coisa é que eu tenho que fazer o seguinte para acessar o host final. Do meu pc:

ssh username@server

Digite a senha. Quando eu estiver lá:

ssh username2@finalhost

e digite outra senha.

Isso é bastante trabalhoso, especialmente ao fazer scp , porque eu tenho que copiar o arquivo para o servidor intermediário antes de poder copiá-lo para o host final.

Existe uma maneira de automatizar este processo, tanto para os comandos ssh e scp ?

    
por Tendero 14.08.2018 / 02:50

2 respostas

4

Se você tiver OpenSSH 7.3 ou posterior, você pode usar ProxyJump na configuração do seu cliente SSH para especificar hosts de salto.

Por exemplo, edite seu ~/.ssh/config e adicione

Host finalhost
HostName finalhost.example.com
User username2
ProxyJump username@server

Agora, ssh finalhost ou scp file.txt finalhost:. deve passar pelo host de salto.

    
por 14.08.2018 / 03:10
0

Aqui está um pequeno bloco de ~ / .ssh / config que fará o tric (mesmo para versões antigas do ssh):

Host server
    User username

Host finalhost
    User username2
    ProxyCommand ssh server -W %h:%p

Você declara 2 hosts, o servidor do meio e o host final. A conexão ssh com o servidor é direta com o Usuário e o Host fornecidos na configuração. A conexão com o host final executa um salto no servidor, conforme especificado na linha ProxyCommand .

Os dois parâmetros mágicos % h e % p são usados para encaminhar o host atual = finalhost e a porta atual = 22 (padrão)

Em segundo lugar, para evitar que você digite sua senha toda vez que se conectar a essas máquinas, você pode usar o comando ssh-copy-id :

ssh-copy-id server
<type server password for the last time>

ssh-copy-id finalhost
<type finalhost password for the last time>

Para que isso funcione, você precisa ter gerado um par de chaves pública-privada anteriormente usando ssh-keygen . Você pode verificar se eles já existem na pasta ~ / .ssh (id_rsa.pub & id_rsa)

    
por 16.08.2018 / 13:15