Pergunta

Quando eu tento usar um ssh comando em um script de shell, o comando apenas se senta lá.Você tem um exemplo de como usar ssh em um shell script?

Foi útil?

Solução

Depende do que você quer fazer, e como usá-lo.Se você apenas deseja executar um comando remotamente e com segurança em outra máquina, basta usar

ssh user@host command

por exemplo

ssh user@host ls

Para fazer isso com segurança, você precisa pedir a senha do usuário durante o tempo de execução, ou configurar as teclas do host remoto.

Outras dicas

Primeiro, você precisa se certificar que você tenha configurado sem senha (chave pública de login).Existem pelo menos dois tipos de ssh com um pouco de configuração diferentes formatos de arquivo.Verifique o ssh página de manual no seu sistema, consulte o local da função sysadmin ou de cabeça para Como faço para instalação de Chave Pública de Autenticação?.

Para executar ssh em modo batch (como dentro de um script de shell), você precisa passar por um comando a ser executado.A sintaxe é:

ssh host command

Se você deseja executar mais de um comando ao mesmo tempo, usar aspas e ponto-e-vírgula:

ssh host "command1; command2"

As aspas são necessárias para proteger o ponto-e-vírgula, a partir da shell intérprete.Se você deixou para fora, apenas o primeiro comando deve ser executado remotamente e todo o resto seria executado na máquina local.

Você pode usar expect comando para preencher o nome de utilizador/palavra-passe de informações.

Você precisa colocar a sua chave pública SSH para o ~/.ssh/authorized_keys do arquivo no host remoto.Em seguida, você será capaz de SSH para o host senha a menos.

Alternativamente, você pode usar ssh-agent.Eu recomendaria contra a armazenar a senha no script.

A maneira mais fácil é usando um certificado para o usuário que executa o script.

Um caso mais complexo de um implica a adição de stdin a palavra-passe quando o shell de comando pede.Esperar, perl bibliotecas, mostrar para o usuário o prompt pedindo a senha (se é interactivo, pelo menos), há um monte de opções.

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