.sh 脚本未以我想要的用户身份执行,因此 scp 不起作用

.sh 脚本未以我想要的用户身份执行,因此 scp 不起作用

我使用的是 Ubuntu 的 Transmission 的 GUI 版本。下载种子时,我使用相应的 ssh 密钥以用户服务器身份运行了以下脚本:

#!/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

现在我正在使用 transmission-daemon,并且脚本不再作为服务器执行,因此,scp 不起作用,因为当尝试 ssh 到[电子邮件保护]它提示输入密码(该用户没有 ssh 密钥)。

我该如何解决这个问题?

答案1

如果您有“服务器”私有 ssh 密钥的读取权限,请使用-我使用 scp 修饰符,告诉它使用特定的私钥文件。

顺便说一句,这样写不是更短吗?

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

相关内容