ssh-keygen默认创建 RSA 密钥,但gpg --gen-key更喜欢 DSA/ElGamal。
哪一个 - RSA 或 DSA - 更适合 GPG?
我正在尝试在由 cron 运行的 bash 脚本中使用 scp(我在 Ubuntu 10.0.4 LTS 上运行它)。
该脚本工作正常(即,当我从命令行运行它时,向/从远程服务器传输和复制 file1 和 file2。但是,当我将脚本作为 cron 作业运行时,它失败了。
这就是脚本的样子:
#!/bin/bash
cd /home/oompah/scripts/tests/
scp -P 12345 file1 oompah@someserver.com:~/uploads
if scp -P 12345 oompah@someserver.com:/path/to/file2.dat local.dat >&/dev/null ; then
echo "INFO: transfer OK" ;
else
echo "ERROR: transfer failed" ;
fi
Run Code Online (Sandbox Code Playgroud)
当我将它作为 cron 作业运行时,我得到的错误消息(重定向到日志文件)是:
ERROR: transfer failed
Run Code Online (Sandbox Code Playgroud)
我发送到我的邮件收件箱的错误消息是:
Permission denied (publickey).
lost connection
Run Code Online (Sandbox Code Playgroud)
为什么会发生,我该如何解决?
[编辑]
我用 -i 命令修改了第一个 scp 命令(如 M Jenkins 建议的那样),我还添加了 -v 用于调试消息。这是完整的调试消息日志。希望它可以阐明正在发生的事情:
Executing: program /usr/bin/ssh host 12.34.56.78, user oompah, command scp -v …Run Code Online (Sandbox Code Playgroud)