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

0 ssh mysql

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

ssh -i /path/to/key-ssh me@mydomain.com
Run Code Online (Sandbox Code Playgroud)

然后服务器要求输入密码,登录成功。

现在我想自动化一个 MySQL 备份,所以我需要使用 shell 脚本登录。(要明确:我的提供商需要密钥对和密码才能登录)

然后我尝试使用 sshpass:

sshpass -p 'MYPASSWORD' ssh me@mydomain.com
Run Code Online (Sandbox Code Playgroud)

权限被拒绝(publickey、gssapi-keyex、gssapi-with-mic)。

然后我尝试了这个:

sshpass -p 'MYPASSWORD' ssh -i /path/to/key-ssh me@mydomain.com
Run Code Online (Sandbox Code Playgroud)

有了这个,远程服务器根本不响应(提示冻结)

我的服务器运行 Debian 8.10 (Jessie)

我知道使用 sshpass 存在安全风险,但我是唯一一个使用该服务器的人。我也尝试过 automysqlbackup,但它让我头疼,试图让它通过 ssl 工作。

通过 SSH 自动备份似乎是最简单的解决方案(我不再那么确定了......)

dr_*_*dr_ 5

服务器不会要求您输入密码。您输入的是保护您的私钥的密码。

要在无需输入密码的情况下自动登录,您首先必须删除密码。您可以通过以下命令执行此操作:

ssh-keygen -p
Run Code Online (Sandbox Code Playgroud)

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