0

我有一个脚本,用于创建数据库转储并将文件从 Ubuntu 服务器传输到 Linux 机器,我使用 scp 进行文件传输,每次都提示输入密码,需要自动化。我在 Ubuntu 机器上将 Linux 的 Rsa 公钥作为authorized_keys,当我 scp 时,它说Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)检查了权限以及密码验证关闭等所有事情都没有运气。

我可以在我的脚本中写下密码并且不管安全性如何都可以使用,因为我将提供 700 个许可,除了我是 root 用户之外,没有人可以访问它。

这是我的脚本:

export DB_DUMP_DIR=/home/database_dump
export DB_NAME=database_name_$(date '+%Y_%m_%d').sql

mysqldump -u root  mysql > ${DB_DUMP_DIR}/${DB_NAME}
if [ $? -eq 0 ];then
 scp -i /root/.ssh/id_rsa  ${DB_DUMP_DIR}/${DB_NAME} root@192.0.0.0:
else
    echo "Error generating database dump"
fi
4

1 回答 1

0

首先想到的是

  • 服务器是否设置为允许密钥认证认证?(那是PubkeyAuthentication yessshd_config
  • 服务器是否允许 RSA 密钥?(这可能看起来像RSAAuthentication no你的sshd_config
  • root的~/.ssh目录是否设置为700?(或更紧)
  • root~/.ssh/authorized_keys设置为 600 吗?(或更紧)
  • 远程机器是否允许您以 root 身份登录?(中的PermitRootLogin no选项sshd_config
  • 您发送到这里的钥匙真的是正确的吗?您是否尝试使用您创建的其他密钥来测试它?

最后,在脚本中写下密码从来都不是一个好主意。只是不要这样做。改为在此处修复密钥身份验证的问题。

于 2013-10-23T01:31:14.890 回答