ssh root @ domain – 如何指定密码?

我需要编写一个脚本来备份我的旧服务器上的数据库,并将它们移到我的新服务器上。 我有150左右,所以需要这个自动化。 我发现这个:

$ mysqldump -u username -p'password' db-name | ssh [email protected] mysql -u username -p'password' db-name 

这将允许我这样做,但是,这需要我每次运行时都指定一个密码。 我怎样才能使ssh命令取得一个密码参数? 我试过ssh --help但是什么都看不到。

如果这个命令不能接受密码,我可以用另一种方式吗?

你想使用基于密钥的身份validation。 关于这个主题的SF有几十个问题,以及networking上无数的教程,可以引导你如何获得这个设置。

不仅将使用密钥authentication允许您需要的自动化,但它也是一个更安全的身份validation手段(假设您在某个时候禁用密码身份validation)。

基本步骤是:

  1. 在备份服务器上运行ssh-keygen ,作为将执行备份的用户。 这将生成一个密钥对(公共和私人部分)并将其存储在~/.ssh/
  2. 将公钥复制到正在备份的服务器上。 公钥文件中应该有一行文本。 将该公钥复制/粘贴到您在该服务器上使用的任何用户的~/.ssh/authorized_keys中以执行备份。
  3. 完成之后,您应该能够从备份服务器连接到旧的数据库服务器,而无需使用密码。

您需要设置基于密钥的身份validation。 使用计算机上的私钥文件和接收方授权代理下列出的匹配公钥文件,您可以在不input密码的情况下使用sshlogin。