Como passar o script addional para um script ssh já existente

0

Caso de uso:

1 > ssh em uma máquina - > usando a automação de script esperada

2 > Uma vez ssh'ed na máquina executar um script da minha máquina local para a máquina remota

Atualmente estou fazendo a seguinte abordagem:

ssh [email protected] < ./s4.sh
Pseudo-terminal will not be allocated because stdin is not a terminal.
[email protected]'s password: <Provide password>
<Script executes without any errors>

No cenário acima, eu tenho que fornecer minha senha manualmente, que não é o caso de uso pretendido para automação.

Portanto, usaremos a opção expect que ajudará a automatizar o procedimento de login.

Exemplo de código:

#!/usr/bin/expect -f
spawn ssh [email protected]
expect "password"
send "password\r"

Este código ajuda a automatizar o login, mas no código de expectativa ... como darei o comando para acionar outro script de dentro do meu script atual?

    
por anish anil 21.10.2017 / 08:04

1 resposta

0

Na minha opinião, toda a abordagem poderia ser melhorada:

  1. Primeiro, você pode usar Login SSH baseado em chave para autenticar-se com segurança sem senha - apenas deixe a senha vazia quando gerar a chave.

  2. Em seguida, você pode criar ~/.ssh/config para facilitar o processo de criação da conexão ssh.

  3. Em seguida, o script de automação pode executar apenas estas etapas:

  1. Alternativamente, você pode montar uma pasta na máquina remota usando sshfs e depois é só executar o script remotamente .
por pa4080 21.10.2017 / 12:37