Autor Tópico: [REOSLVIDO] scp pode receber a senha do usuário como parâmetro?  (Lida 23281 vezes)

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
[REOSLVIDO] scp pode receber a senha do usuário como parâmetro?
« Online: 10 de Setembro de 2009, 14:39 »
Estou construindo um script (bash) de backup que precisa transferir arquivos de um servidor para outro.
Para facilitar a vida da próxima pessoa que vier trabalhar no meu lugar, gostaria de criar um usuário somente para se logar no outro servidor para transferir estes arquivos e sua senha seria de conhecimento dos integrantes do suporte aqui da empresa.

Como deixar documentado o que cada comando faz na hora de exportar as chaves é complicado, até porque, quando eu me for (tomara que demore muito) a pessoa que assumir o meu lugar terá que exporta a chave dela e assim por diante.

Existe alguma maneira de eu usar
Código: [Selecionar]
scp -paramaetro "senha" backup_user@servidor:/diretorio?

----------

Essa aqui é porque ainda não pesquisei, mas já que estou usando o fórum...
- Como faço para mandar e-mail dizendo que o backup foi realizado com/sem sucesso?
- Dá pra gravar num arquivo de log meu script, todas as ações feitas?

[]'s
« Última modificação: 19 de Setembro de 2009, 14:34 por bred81 »
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline bruno_moita

  • Usuário Ubuntu
  • *
  • Mensagens: 82
  • Conhecimento é poder
    • Ver perfil
    • Minhas experiências nos estudos para LPI
Re: scp pode receber a senha do usuário como parâmetro?
« Resposta #1 Online: 11 de Setembro de 2009, 16:42 »
Boa Tarde,

  Em relação ao scp sem senha, sugiro que estude o uso de chaves criptografadas. Estou com a mesma dúvida, e até agora é a melhor solução que eu encontrei. Aqui está um bom artigo sobre oassunto: http://www.vivaolinux.com.br/dica/Utilizando-chaves-publicas-no-SSH-e-SCP

  Este é um scrpit que desenvolvi que logava e mandava e-mail. Para enviar e-mail conforme este scrpit, voce deve ter o pacote mailx instalado:

    http://www.vivaolinux.com.br/topico/Shell-Script/Funcao-nao-Funciona
Bruno Simões
MSN: brunosimoes@gmail.com
Blog: http://brunopintosimoes.blogspot.com/

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: scp pode receber a senha do usuário como parâmetro?
« Resposta #2 Online: 11 de Setembro de 2009, 20:51 »
Fazer por chaves eu sei, e pensando agora, eu até vou criar um usuário e exportar as chaves dele para não precisar ficar trocando.

Agora, fica essa dúvida. Gostaria até de ouvir um "não é possível" do que não ouvir nada...
=)
Valeu a ajuda com o script!
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: scp pode receber a senha do usuário como parâmetro?
« Resposta #3 Online: 11 de Setembro de 2009, 23:23 »
bred81 eu não vi seu tópico, acho que to ficando cego.

Precisei usar o scp assim como você, e achei aqui no fórum a solução, veja: aqui.

Eu só tomei o cuidado para no meu script não deixar a senha gravada, então como todas as máquinas o usuário administrador possui a mesma senha, eu a peço no início e deixo na linha do scp a variável com a senha.

Ai quando o script fecha tchau, a senha esta protegida.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: scp pode receber a senha do usuário como parâmetro?
« Resposta #4 Online: 12 de Setembro de 2009, 18:34 »
bred81 eu não vi seu tópico, acho que to ficando cego.

Precisei usar o scp assim como você, e achei aqui no fórum a solução, veja: aqui.

Eu só tomei o cuidado para no meu script não deixar a senha gravada, então como todas as máquinas o usuário administrador possui a mesma senha, eu a peço no início e deixo na linha do scp a variável com a senha.

Ai quando o script fecha tchau, a senha esta protegida.

Ajudou batante!
Aquela dúvida: sshpass = scp?
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: scp pode receber a senha do usuário como parâmetro?
« Resposta #5 Online: 12 de Setembro de 2009, 18:54 »
Ajudou batante!
Aquela dúvida: sshpass = scp?

Não. O comando será:

Citar
sshpass    -p     'senha_do_usuario'      scp      arquivo_a_copiar       usuario_a_copiar@ip:path_destino

Neste exemplo acima estou copiando algo daqui para outra máquina.
« Última modificação: 12 de Setembro de 2009, 18:58 por clcampos »
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: scp pode receber a senha do usuário como parâmetro?
« Resposta #6 Online: 13 de Setembro de 2009, 20:19 »
clcampos,

a pergunta que eu fiz foi errada...
O que quis perguntar foi: sshpass vem instalado com o ssh/scp?

Fiz essa pergunta mais porque estou longe do trabalho, amanhã vou colocar aqui o meu script e por favor, deem uma opinião...
=)
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: scp pode receber a senha do usuário como parâmetro?
« Resposta #7 Online: 13 de Setembro de 2009, 20:38 »
clcampos,

a pergunta que eu fiz foi errada...
O que quis perguntar foi: sshpass vem instalado com o ssh/scp?

Fiz essa pergunta mais porque estou longe do trabalho, amanhã vou colocar aqui o meu script e por favor, deem uma opinião...
=)


Se me lembro bem você vai ter que instalar o pacote.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline Solid One

  • Usuário Ubuntu
  • *
  • Mensagens: 276
  • Linux for human beings
    • Ver perfil
Re: scp pode receber a senha do usuário como parâmetro?
« Resposta #8 Online: 16 de Setembro de 2009, 18:12 »
bred81 eu não vi seu tópico, acho que to ficando cego.

Precisei usar o scp assim como você, e achei aqui no fórum a solução, veja: aqui.

Eu só tomei o cuidado para no meu script não deixar a senha gravada, então como todas as máquinas o usuário administrador possui a mesma senha, eu a peço no início e deixo na linha do scp a variável com a senha.

Ai quando o script fecha tchau, a senha esta protegida.

hmm. estou curioso. como o seu script faz pra realizar essa operação sem deixar a senha gravada de algum modo?

a princípio, pensei em incluir a senha dentro do próprio script, mas não é a melhor solução.

Código: [Selecionar]
#!/bin/sh
sshpass -p 'senha' ssh e-teca01.local 'notify-send teste'
sshpass -p 'senha' ssh e-teca02.local 'notify-send teste'
sshpass -p 'senha' ssh e-teca03.local 'notify-send teste'

depois, pensei em passar a senha como argumento:

Código: [Selecionar]
#!/bin/sh
sshpass -p '$@' ssh e-teca01.local 'notify-send teste'
sshpass -p '$@' ssh e-teca02.local 'notify-send teste'
sshpass -p '$@' ssh e-teca03.local 'notify-send teste'
./script senha

mas assim, a senha fica salva no arquivo ~/.bash_history.

como você fez? algum mecanismo que o script peça pra digitar a senha dentro da execução do mesmo?

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: scp pode receber a senha do usuário como parâmetro?
« Resposta #9 Online: 16 de Setembro de 2009, 18:21 »
Basta pedir a senha ao se executar o script.

Acho a melhor opção nesse caso.

Ou então vai ter que complicar e usar criptografia do arquivo com a senha. Mas nesse caso existem outras formas melhores de usar o ssh sem necessitar de senha.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline Solid One

  • Usuário Ubuntu
  • *
  • Mensagens: 276
  • Linux for human beings
    • Ver perfil
Re: scp pode receber a senha do usuário como parâmetro?
« Resposta #10 Online: 16 de Setembro de 2009, 18:55 »
hmm. poderia mostrar o trecho do script que o faz pedir a senha ao ser executado, pra em seguida jogar como argumento pros comandos seguintes?

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: scp pode receber a senha do usuário como parâmetro?
« Resposta #11 Online: 16 de Setembro de 2009, 20:31 »
hmm. poderia mostrar o trecho do script que o faz pedir a senha ao ser executado, pra em seguida jogar como argumento pros comandos seguintes?

Posso sim. Para rodar o script que vou colar aqui você deve ter o dialog (acho que já vem instalado) e o zenity instalados.

Para confirmar digite:

Código: [Selecionar]
sudo   aptitude   install   zenity
O script (que só faz pegar a senha de três formas diferentes e depois apresentá-la) é:

Citar
#!/bin/bash
#
# Script que pede sendo usuário de três formas
#
# Cristiano
# 16/Set/2009
#

#
# Via console - usando "echo"
################################
clear  # Limpando a tela

echo -e "Informe a senha para acesso: \033[8m\c"
read senha
echo -e "\033[0m"

echo -e "\n\nA senha digitada foi: \033[1m$senha\033[0m\n\nTecle <\033[1mEnter\033[0m> para continuar."
read espera

#
# Via console - usando dialog
###################################
senha=$( dialog --stdout --passwordbox "Informe a senha para acesso:" 10 40  2>&1 )

dialog --msgbox "A senha digitada foi: $senha" 8 40

#
# Agora usando o zenity
####################################
senha=$( zenity --entry --text "Informe a senha para acesso:" --hide-text )

zenity --info --text "A senha digitada foi: $senha"


Para usar a senha digitada (pegando o script como exemplo) basta usar no lugar da senha a variável $senha, que foi a variável que usei em todas as 3 formas.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: scp pode receber a senha do usuário como parâmetro?
« Resposta #12 Online: 16 de Setembro de 2009, 21:35 »
Olha como de vez em quando a gente não pensa...

A gente acabou optando por essa solução:
Vamos compartilhar a pasta que precisava acessar na rede, dando permissão de leitura/escrita/execução somente para os usuários de um determinado grupo.
Depois vamos colocar esta pasta pra montar automaticamente e tudo fica uma belezura!
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline Solid One

  • Usuário Ubuntu
  • *
  • Mensagens: 276
  • Linux for human beings
    • Ver perfil
Re: scp pode receber a senha do usuário como parâmetro?
« Resposta #13 Online: 18 de Setembro de 2009, 10:08 »
muito obrigado, cara. agora que a senha é recebida pelo script, isso vai facilitar muito o trabalho da gente aqui. não vou precisar mais redigitar a mesma senha 35 vezes.

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: scp pode receber a senha do usuário como parâmetro?
« Resposta #14 Online: 18 de Setembro de 2009, 15:15 »
Posso colocar resolvido no tópico?
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...