Como executar um script em ssh login e executar outro script após o primeiro término?

0

Estou tentando executar um script / shell logo após o login via ssh para meu host com um "guestUser" a missão deste usuário é conectar-se a outro host remoto via ssh, eu criei este usuário no meu host:

guestUser:x:1234:1234::/home/guest:/bin/bash

Em seguida, no diretório guest, eu tenho um arquivo .bashrc onde eu adiciono isso, seguindo essa resposta ( Linux: Como executar automaticamente comandos no login do SSH? ):

if[[ -n $SSH_CONNECTION ]] ; then
  ssh 192.198.1.99
fi

Eu fiz isso porque eu preciso que nesta etapa "guestUser" introduza sshUserInRemoteTwo e sshUserPasswordInRemoteTwo. Não funciona. O script tenta registrar "guestUser" no remoteHostTwo como "guestUser", esse não é o objetivo, eu preciso do script pedindo usuário / senha.

Se eu entendi funciona: script pede usuário / senha e login corretamente no segundo host, então, uma vez que a conexão SHH com o segundo host acabou, guestUser sendo off-line meu host; porque no momento, a conexão SSH acabou e o usuário continua no meu host.

    
por Di36o 01.04.2015 / 08:30

2 respostas

0

Tente:

ssh <username>@192.198.1.99

Ou:

ssh -l <username> 192.198.1.99

Basta substituir a linha no seu snippet .bashrc acima por um desses formulários.

Você será solicitado a fornecer uma senha para essa conexão assim que efetuar o login. Você pode querer se livrar dela usando uma senha menos login .

homem ssh

    
por 01.04.2015 / 08:33
0

Se você quiser que o controle remoto funcione como proxy, não é necessário criar um usuário especial. Você pode fazer isso criando auth por chave e restringir esta chave para executar incondicionalmente o comando especificado

man authorized_keys
...
command="command"
         Specifies that the command is executed whenever this key is used for authentication.

Neste comando você pode ligar a conexão ssh.

Mas, para isso, é melhor usar o encaminhamento de porta.

    
por 01.03.2016 / 08:07