Como transpor / executar um script no servidor Unix remoto da máquina Linux

0

Estou tentando implantar um executável e executá-lo em uma máquina Unix remota (Linux / Solaris) do Linux sem inserir a senha manualmente.

Eu tentei o scp e também o utilitário key-gen do SSH para interagir com o servidor remoto, mas de qualquer forma não pude evitar fornecer a senha manualmente. Como preciso executar esse comando / utilitário a partir do código Java, devo evitar completamente a solicitação da senha em tempo de execução. Já passei por muitos tópicos no Google, mas nada se materializou.

Como posso fazer isso?

    
por Jagadeesh 06.12.2012 / 11:52

3 respostas

1

Você deve configurar a autenticação usando par de chaves pública / privada, como você já mencionou que você gerou usando ssh-keygen . Já gerou sem uma senha na chave privada, se você precisar usá-lo em scripts automatizados. Agora, basta copiar a chave pública usando ssh-copy-id name@host para configurá-la corretamente no lado remoto (autorize a chave pública).

Sugiro que você siga um tutorial como este .

Se ssh funcionar, então scp funcionará da mesma forma.

Depois de configurá-lo corretamente, você poderá fazer isso sem interação:

scp myscript.sh name@remotehost:~/
ssh name@remotehost ~/myscript.sh

Para evitar a inserção de uma senha ou passphrase, existem algumas opções

  • use um agente de autenticação para manter a senha / senha longa para a chave privada
  • não use nenhuma frase secreta para proteger a chave privada

O primeiro é apropriado para uso interativo, este último é menos seguro. Provavelmente, você deve configurar um novo ID de usuário para isso com direitos mínimos na extremidade remota (por exemplo, chrooted)

    
por 06.12.2012 / 12:03
0

Você precisa ler sobre rhosts e rlogin.

link

    
por 06.12.2012 / 11:59
0

Passo 0. Você deve ter acesso ssh à máquina remota.

Etapa 1. Gere o par de chaves privada / pública RSA com ssh-keygen em sua caixa do Linux e coloque-o em algum lugar (/ root / identities, por exemplo). Não forneça senhas.

Etapa 2. ssh-copy-id -i /root/identities/your.key [email protected]

Etapa 3. É isso. Agora você pode ssh -i /root/identities/your.key user@remotemachine your_command e nenhuma senha será solicitada. Claro, você deve ter PubkeyAuthentication = yes em sshd_config da máquina remota.

    
por 06.12.2012 / 12:05