如何使用密钥对和密码编写 SSH 连接脚本?

如何使用密钥对和密码编写 SSH 连接脚本?

我设法使用以下命令手动登录到我的托管提供商:

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

不过,请小心地将您的私钥保存在安全的地方,因为如果没有密码,任何人都可以使用它。

相关内容