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

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 的问题,以及网络上无数的教程,可以引导您完成如何设置。

使用密钥身份验证不仅可以实现您需要的自动化,而且还是一种更安全的身份验证方式(假设您在某个时候禁用密码身份验证)。

基本步骤是:

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


Cal*_*leb 5

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