Acesse os serviços remotos como se fossem locais usando conexão SSH única [duplicada]

0

É possível criar um único túnel SSH para endereçar um host remoto como se estivesse no sistema local, por exemplo. digite os seguintes exemplos de pseudo localmente e atinja o efeito desejado:

  • Copiar bancos de dados: mysqldump remote | mysql local ou mysqldump local | mysql remote
  • Anexar texto aos arquivos remotos: echo blah >> remote:file.txt
  • Alterar arquivos remotos: sed ... remote:file.txt
  • Executa comandos remotos: apk add blah

Se uma única conexão não for possível, qual é a maneira mais conveniente de realizar essas ações?

    
por forthrin 22.09.2016 / 18:23

1 resposta

2

Para acessar o mysql remoto, você pode usar o localhost: 12345, encaminhando:

ssh -Nf -L 12345:localhost:3306 user@remote

Para as operações de arquivo, você pode montar o host remoto via sshfs:

mkdir /tmp/remote
sshfs user@remote:/ /tmp/remote
echo blah >> /tmp/remote/file.txt
sed ... /tmp/remote/file.txt

Executar comandos remotos funciona normalmente via ssh:

ssh user@remote command ....

Você pode fazer tudo isso usando apenas uma conexão se você adicionar isto ao seu ~ / .ssh / config:

ControlMaster auto
ControlPath ~/.ssh/masters/%l%r@%h:%p

A primeira conexão ssh será a master e as próximas serão reutilizadas. Novas conexões escravas estarão disponíveis com muita rapidez. Nenhuma sobrecarga de troca de chave inicial, etc.

    
por 22.09.2016 / 19:19