usando perl como posso automtar login para host linux remoto usando ssh

1

Atualmente, tenho declarações como: system ("ssh -o StrictHostKeyChecking = nenhuma raiz \ @ $ {address} \" cat / var / log / messages ""); Isso não requer uma senha, já que os dois sistemas foram configurados com a troca de chaves adequada

agora isso não está mais disponível: portanto:

Eu quero ser capaz de:

  1. Faça login como "admin"
  2. Fornecer uma senha
  3. faça um sudo -i
  4. forneça uma senha
  5. execute o mesmo comando "cat / var / log / messages"

Obrigado -Kamal.

    
por kamal 05.07.2010 / 15:48

3 respostas

4

Ao usar Perl, sempre procure um módulo em CPAN para a tarefa. Quase certamente alguém já resolveu seu problema. Neste caso: Net :: SSH :: Perl .

    
por 05.07.2010 / 16:25
2

Em vez de usar o sudo, você provavelmente pode adicionar o usuário "admin" ao grupo do arquivo / var / log / messages. Em um sistema Debian / Ubuntu típico, isso significaria adicionar o usuário "admin" ao grupo "adm", já que esse é o grupo do arquivo / var / log / messages.

Para adicionar o usuário administrador ao grupo "adm":

 sudo adduser admin adm

Então, basta usar o ssh sem sudo para catar o arquivo.

Outra opção é editar seu arquivo / etc / sudoers (usando visudo) para permitir que o usuário administrador execute esse comando sem uma senha sudo.

    
por 05.07.2010 / 16:46
0

use Net :: OpenSSH .

No diretório samples da distribuição do módulo, você encontrará alguns scripts que automatizam a interação do sudo.

    
por 21.03.2011 / 12:13

Tags