SSHPASS Uma excelente ferramenta para login SSH não interativo - nunca use no servidor de produção

SSHPASS Uma excelente ferramenta para login SSH não interativo - nunca use no servidor de produção

Na maioria dos casos, os administradores do sistema Linux estão login para servidores Linux remotos usando o SSH fornecendo uma senha ou login SSH sem senha ou autenticação SSH baseada em keybased.

E se você quiser fornecer um senha juntamente com nome de usuário para SSH Promover? é aqui que sshpass vem para resgatar.

sshpass é uma ferramenta de linha de comando simples e leve que nos permite fornecer senha (autenticação de senha não interativa) para o prompt de comando, para que scripts de shell automatizados possam ser executados para receber backups por meio do Cron Scheduler.

O SSH usa acesso direto para garantir que a senha seja realmente fornecida por um usuário interativo do teclado. O SSHPASS executa SSH em um TTY dedicado, enganou -o a acreditar que está recebendo a senha de um usuário interativo.

Importante: Usando sshpass considerado menos seguro, pois revela a senha para todos os usuários do sistema na linha de comando com simples "PS" comando. Eu recomendo usar a autenticação sem senha ss.

Instale o SSHPass em sistemas Linux

Em Redhat/CentOS Sistemas baseados, primeiro você precisa ativar o repositório EPEL em seu sistema para instalá -lo usando o comando yum como mostrado.

# yum install sshpass # dnf install sshpass [on Fedora 22+ versões] 

No Debian/Ubuntu e seus derivados, você pode instalá-lo usando o comando apt-get, como mostrado.

$ sudo apt-get install sshpass 

Como alternativa, você pode instalar da fonte para ter a versão mais recente de sshpass, Primeiro baixe o código -fonte e depois extraia o conteúdo do arquivo alcatrão e instale -o assim:

$ wget http: // sourceforge.net/projetos/sshpass/arquivos/mais recente/download -o sshpass.alcatrão.gz $ tar -xvf sshpass.alcatrão.gz $ cd sshpass-1.06 $ ./Configurar # sudo fazer instalar 

Como usar o sshpass em linux

sshpass é usado junto com ssh, Você pode ver todos os sshpass Opções de uso com descrições completas emitindo o comando abaixo:

$ sshpass -h 
ajuda sshpass
Uso: sshpass [-f | -d | -p | -e] [-hv] parâmetros de comando -f nome do arquivo Tomar senha para usar do número de arquivo -d Número de uso como descritor de arquivo para obter senha -p Senha Ofereça senha como argumento (argumento ( segurança imprudente) -e senha é passada como "sshpass" Env -Var, sem parâmetros -a senha será retirada de informações da versão de impressão de stdin -h -h (esta tela) -v ou -e deve ser usado 

Como eu mencionei antes, sshpass é mais confiável e útil para fins de scripts, considere os comandos de exemplo abaixo.

Faça login no servidor SSH Linux remoto (10.42.0.1) com o nome de usuário e senha e verifique o uso do disco do sistema de arquivo do sistema remoto, como mostrado.

$ sshpass -p 'my_pass_here' ssh [email protegido] 'df -h' 

Importante: Aqui, a senha é fornecida na linha de comando que é praticamente insegura e usando esta opção não é recomendada.

SSHPass - Linux Remote Login via SSH

No entanto, para evitar mostrar a senha na tela, você pode usar o -e sinalizar e inserir a senha como um valor do Sshpass Variável de ambiente como abaixo:

$ export sshpass ='my_pass_here' $ echo $ sshpass $ sshpass -e ssh [email protegido] 'df -h' 
sshpass - ocultar a senha no prompt

Observação: No exemplo acima, Sshpass A variável de ambiente é apenas para fins temporários e será removida durante a reinicialização.

Para definir permanentemente o Sshpass variável de ambiente, abra o /etc/perfil Arquive e digite a declaração de exportação no início do arquivo:

exportar sshpass ='my_pass_here' 

Salve o arquivo e saia e execute o comando abaixo para efetuar as alterações:

$ fonte /etc /perfil 

Por outro lado, você também pode usar o -f sinalize e coloque a senha em um arquivo. Dessa forma, você pode ler a senha do arquivo da seguinte forma:

$ sshpass -f Password_Filename ssh [email protegido] 'df -h' 
SSHPASS - Arquivo de senha de fornecimento para login

Você também pode usar o SSHPass para transferir arquivos usando arquivos SCP ou Backup/Sync sobre o RSYNC usando o SSH como mostrado:

------- Transferir arquivos usando SCP ------- $ scp -r/var/www/html/exemplo.com -rsh = "sshpass -p 'my_pass_here' ssh -l aaronkilik "10.42.0.1:/var/www/html ------- Arquivos de backup ou sincronização usando o RSYNC ------- $ rsync -rsh = "sshpass -p 'my_pass_here' ssh -l aaronkilik "10.42.0.1:/dados/backup//backup/ 

Para mais uso, sugiro que você leia o sshpass página de homem, tipo:

$ man sshpass 

Neste artigo, explicamos sshpass Uma ferramenta simples que permite autenticação de senha não interativa. Embora essas ferramentas possam ser úteis, é altamente recomendável usar o mecanismo de autenticação de chave pública mais segura da SSH.

Por favor, deixe uma pergunta ou comente através da seção de feedback abaixo para mais discussões.