Como posso usar o ssh para um servidor remoto com uma senha automatizada e sem chave?

2

Eu tenho um servidor remoto. Eu planejei usar chaves públicas para conectar-se ao ssh sem digitar a senha, mas o sistema remoto rejeita a autenticação de chave pública.

Então, qual é a melhor maneira de fazer isso? Que tal usar sshpass ?

    
por Nadina 29.05.2014 / 01:28

3 respostas

2

Você pode usar sshpass se você for o único usuário do seu sistema. Mas definitivamente é uma ideia muito ruim. Todo mundo poderia pegar sua senha se ele tivesse um acesso shell à sua máquina.

Uma vez que você não pode trocar chaves públicas. Eu sugiro que você use expect . Você precisará proteger um arquivo exp contendo sua senha. Ele será armazenado em seu disco rígido, para que todos os usuários que possuam o acesso sudo ou root possam hackeá-lo. Mas pelo menos é realmente mais seguro que sshpass .

Veja como fazer

    
por 29.05.2014 / 01:32
3

EDITAR

A partir do link que usei como referência, você pode encontrar mais opções.

Se você tiver sshpass instalado, poderá automatizar a conexão ssh para não precisar digitar sua senha para cada máquina:

SSHPASS='password'
  sshpass -e  your commands here

1. Instalar sshpass

Este é um ótimo programa que permite passar uma senha ssh como um parâmetro de linha de comando. Esta, obviamente, não é uma solução muito segura e eu recomendo que você leia a seção "Considerações de segurança" de man sshpass .

De qualquer forma, provavelmente está disponível nos repositórios da sua distribuição, nos sistemas baseados no Debian ele pode ser instalado com

sudo apt-get install sshpass

Eu não posso verificar, já que não tenho uma máquina baseada em RedHat, mas pelo que posso dizer, pesquisando aqui , deve ser instalável no Fedora com

sudo yum install sshpass

Depois de ter instalado, você pode simplesmente executar

SSHPASS='password'
  sshpass -e your commands

A opção -e informa sshpass para obter a senha da variável SSHPASS . Isso é um pouco mais seguro do que dar a ele um parâmetro com a opção -p .

IMPORTANTE:

Isso falhará silenciosamente se o servidor ao qual você está se conectando for desconhecido, se sua chave pública não estiver armazenada em sua máquina. Se isso não parecer estar funcionando, basta conectar uma vez ( ssh ou scp ) à máquina remota e aceitar sua chave pública.

Referências

script para automatizar o scp na rede

    
por 29.05.2014 / 01:33
1

Como já foi descrito em outras respostas, também uso sshpass , mas o combino com o comando read para armazenar minha senha em uma variável de ambiente temporária. Dessa forma, minha senha nunca é escrita em lugar algum em claro. Aqui está o comando de uma linha que eu uso:

read -s PASS; sshpass -p $PASS ssh <user>@<host adress>

Depois disso, você tem que digitar sua senha (nada aparece na tela) e, em seguida, pressionar Enter abrirá a conexão.

    
por 31.05.2018 / 21:51