Eu sou uma aluna do CS, e ainda estou aprendendo muitas dessas coisas, e por favor, tenha paciência comigo se eu não tiver uma compreensão completa do que estou tentando aqui.
Eu estou em um Mac, conectando a uma máquina Linux. Eu posso configurar um túnel ssh e conectar-me à máquina remota executando a seguinte linha de script:
ssh -f -L 2222:<remote_machine>:22 <user>@<remote_server> sleep 10; ssh -p 2222 <user>@localhost
O que eu quero fazer é de alguma forma executar esta linha automaticamente. Agora, tenho que copiar e colá-lo no terminal. Eu tenho pares de chaves configurados, então não preciso digitar senhas, mas recebo o prompt do meu tipo de terminal. Estas são as duas etapas que gostaria de eliminar, para que eu possa abrir o terminal e executar um script que elimine essas duas etapas.
O que não consigo descobrir é como responder ao prompt "tipo de terminal" ou responder automaticamente a ele. Eu brinquei com a classe Expect, e com o módulo pexpect do Python, mas não tive sucesso (parece que um script esperado seria capaz de cuidar da parte terminal, mas ter problemas para criar o túnel e não perder a referência ao plano de fundo processo).
Eu tenho um applescript que faz o que eu quero, mas gostaria de uma solução mais portátil. Qualquer sugestão sobre onde procurar seria ótimo!
A maneira mais fácil deve ser criar um alias para este comando. Adicione esta linha ao seu
$HOMe/.bashrc
arquivo:Então, a partir de um terminal normal, você poderá iniciar seu túnel executando
fonte