web*_*oob 2 linux ssh ssh-tunnel
我需要编写一个脚本来备份旧服务器上的数据库并将它们移动到我的新服务器上。我有大约 150 个,因此需要将其自动化。我发现了这个:
$ mysqldump -u username -p'password' db-name | ssh user@remote.box.com mysql -u username -p'password' db-name
Run Code Online (Sandbox Code Playgroud)
这将允许我这样做,但是,它需要我在每次运行时指定一个密码。如何使 ssh 命令采用密码参数?我试过了,ssh --help但什么也看不到。
如果这个命令不能接受密码,我可以用另一种方式吗?
EEA*_*EAA 11
您想为此使用基于密钥的身份验证。这里有许多关于 SF 的问题,以及网络上无数的教程,可以引导您完成如何设置。
使用密钥身份验证不仅可以实现您需要的自动化,而且还是一种更安全的身份验证方式(假设您在某个时候禁用密码身份验证)。
基本步骤是:
ssh-keygen在备份服务器上运行,作为将进行备份的用户。这将生成一个密钥对(公共和私有部分)并将它们存储在~/.ssh/.~/.ssh/authorized_keys您在该服务器上使用的任何用户中以执行备份。