我设法使用以下命令手动登录到我的托管提供商:
ssh -i /path/to/key-ssh [email protected]
然后服务器要求输入密码,登录成功。
现在我想自动化 MySQL 备份,所以我需要使用 shell 脚本登录。 (需要明确的是:我的提供商需要密钥对和密码才能登录)
然后我尝试使用 sshpass:
sshpass -p 'MYPASSWORD' ssh [email protected]
权限被拒绝(publickey、gssapi-keyex、gssapi-with-mic)。
然后我尝试了这个:
sshpass -p 'MYPASSWORD' ssh -i /path/to/key-ssh [email protected]
这样远程服务器根本不响应(提示冻结)
我的服务器运行 Debian 8.10 (Jessie)
我知道使用 sshpass 的安全风险,但我是唯一使用该服务器的人。我也尝试过 automysqlbackup,但试图让它通过 ssl 工作让我很头疼。
通过 SSH 自动备份似乎是最简单的解决方案(我不再那么确定了......)
答案1
服务器不会询问您的密码。您输入的是保护您的私钥的密码。
要自动登录而无需输入密码,您首先必须删除密码。您可以通过以下命令来完成此操作:
ssh-keygen -p
不过,请小心地将您的私钥保存在安全的地方,因为如果没有密码,任何人都可以使用它。