.sh script não é executado como o usuário que eu quero, portanto, scp não funciona

1

Eu estava usando a versão GUI do Transmission for Ubuntu. Quando meus torrents foram baixados, eu executei o seguinte script como servidor de usuário com as chaves ssh correspondentes:

#!/bin/bash

cd "/home/server/Downloads"
find . -type f | while IFS= read filename; do
case "${filename,,*}" in
*.part) : ;; # Excludes *.part files from being moved
*.resume) : ;;
*.torrent) : ;;
*.trashinfo) : ;;
move.sh) : ;;
# Include
*document*) scp "$filename" "[email protected]:/users/imac/Documents/" ;;
# Else
 *) echo "Don't know where to put $filename" ;;
esac
done

Agora estou usando o daemon de transmissão e o script não é mais executado como servidor, portanto, scp não funciona porque ao tentar ssh para [email protected] ele solicita uma senha (nenhuma chave ssh para esse usuário ).

Como posso resolver este problema?

    
por fedxc 10.11.2011 / 01:04

1 resposta

1

Se você tiver acesso de leitura à chave ssh privada de "servidor", use o modificador -i com scp, que diz para usar um arquivo de chave privada específico.

BTW, não é mais curto para escrever isso?

find /home/server/Downloads -type f -iname *document* -exec scp -i pathtokeyfile "{}" "[email protected]:/users/imac/Documents/" ;
    
por 10.11.2011 / 01:34