SSHPASS Uma excelente ferramenta para login SSH não interativo - nunca use no servidor de produção
- 2543
- 368
- Mr. Mitchell Hansen
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 -hajuda 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 SSHNo 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.
- « Adicione as cores do arco -íris à saída do comando linux em câmera lenta
- Como copiar um arquivo para vários diretórios no Linux »