obtendo uma lista de arquivos do servidor seguro

2

Eu estou tentando obter uma lista de arquivos do servidor seguro para compará-los (usando diff) aos que eu modifiquei na versão local (infelizmente a empresa em que eu trabalho não está usando subversion nem git ainda)

Eu obtenho uma lista de arquivos facilmente com:

find . -mtime -20 | grep "\.php\|\.js\|\.css" > changedfiles.log

O que eu preciso é de um script que faça o loop dessa lista e copie com segurança cada um deles (scp ou rsync) para um diretório local, preservando o nome do caminho relativo. eu tentei:

for line in 'cat changedfiles.log'
do
 DIRPATH='dirname "$line"'
 'mkdir -p myfiles/$DIRPATH'
 scp user@host:/remotepath/$line myfiles/$line
done

mas scp continua me pedindo a senha (eu não quero configurar a autenticação baseada em chave para scp sem senha)

Eu não tenho permissão para ssh no servidor remoto, então eu não posso simplesmente fechar a lista e baixá-los em um comando

é possível fazer algo para inserir a senha apenas uma vez?

    
por Pavel K. 15.11.2011 / 12:34

1 resposta

3

Em vez de configurar uma chave passphraseless, crie uma chave protegida por frase-senha e use ssh-agent para garantir que você só precise digitá-la uma vez por trabalho.

Depois de gerar suas chaves, prefixe seu script com algo assim:

# Start a new agent
eval 'ssh-agent -s'

# add keys with a two-hour time limit
ssh-add -t 7200 ~/.ssh/id_rsa

Neste ponto, você será solicitado a inserir sua frase secreta. Após o término do seu script, você pode fazer com que o ssh-agent seja morto automaticamente se você não quiser continuar a execução:

# kill the agent
ssh-agent -k
    
por 15.11.2011 / 14:20