Pergunta

Frequentemente, preciso SSH em um servidor, mas não consigo o SSH diretamente enquanto estou conectado à nossa VPN. Assim, eu tenho que ssh em outro servidor e ssh nele a partir daí. Existe alguma maneira de escrever uma função de script e/ou shell para isso? Eu tentei isso, mas me deu um erro:

% ssh jason@server2 'ssh jason@server1'
jason@server2's password: 
Pseudo-terminal will not be allocated because stdin is not a terminal.
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-with-mic,password).

(e, claro, o nome de usuário e o nome do servidor foram alterados)

Foi útil?

Solução

O empilhamento de conexão SSH pode ajudá -lo. Assumindo o seguinte layout: Client -> Middleman -> Destino

No cliente:

ssh user@Middleman -L 1337:Destination:22

Isso permitirá que você diretamente ssh no destino do cliente em outra sessão:

No cliente:

ssh user@localhost -p 1337

O comando corre como se você tivesse digitado usuário ssh@destino. Você pode colocar o stdin como se estivesse diretamente conectado a ele.

Outras dicas

Não pode mostrar o seu prompt de senha. Eu acho que tudo funcionará com chaves públicas (e, por exemplo, encaminhou o SSH-Agent para eliminar a necessidade de inserir as principais frases).

Parece que você deseja configurar a autenticação de chave pública entre a máquina do meio e as máquinas finais.

Aqui estão alguns guias decentes para você começar. Boa sorte.

http://hkn.eecs.berkeley.edu/~dhsu/ssh_public_key_howto.html

http://pkeck.myweb.uga.edu/ssh/

Pelo que vejo, o problema é SSH na máquina do meio, não pode obter a entrada padrão. Eu acho que só quero pedir sua senha. Se isso for verdade, talvez você deva tentar configurar a tecla SSH para poder SSH sem senha. Nota: Se esse sucesso, é melhor criar um novo usuário na máquina do meio para manter essa chave como medida de segurança.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top