我想在两台计算机之间使用 rsync 命令,并且它们都具有 RedHat 5.3 ,当我用谷歌搜索方法时,我发现我必须在它们之间制作公钥才能在使用 rsync 命令时不提示密码。获取公钥并使 rsync 完美运行的最佳方法是什么。
注意:我遵循了许多教程,但没有找到 authorized_keys(在 /root/.ssh/ 下)。我找到了已知的主机文件。
我想在两台计算机之间使用 rsync 命令,并且它们都具有 RedHat 5.3 ,当我用谷歌搜索方法时,我发现我必须在它们之间制作公钥才能在使用 rsync 命令时不提示密码。获取公钥并使 rsync 完美运行的最佳方法是什么。
注意:我遵循了许多教程,但没有找到 authorized_keys(在 /root/.ssh/ 下)。我找到了已知的主机文件。
需要在要连接的机器上创建公钥/私钥对,然后需要将公钥复制到要连接的机器上。对于这个解释,让我们调用你想从本地连接的机器和你想连接到远程的机器。
第 1 步 - 在本地生成密钥对
此命令将在您的主文件夹中创建 id_dsa 和 id_dsa.pub,即 ~/.ssh/id_dsa 和 ~/.ssh/id_dsa.pub
第 2 步 - 将公钥添加到要连接的机器上的 authorized_keys 文件中。
您现在应该能够使用密钥连接到远程计算机。
当您想通过密钥使用 ssh 时,您首先需要的是密钥。
当被要求输入“密码”时,我们不会输入。只需按两次输入。ssh-keygen 程序现在将生成您的公钥和私钥,默认情况下,您的密钥存储在主目录的 .ssh/ 目录中。使用 dsa 加密创建密钥(或用 rsa 替换 dsa 以进行 rsa 加密)
为了能够使用您的密钥对登录远程系统,您首先必须将远程服务器上的公钥添加到远程计算机主目录中 .ssh/ 目录中的 authorized_keys 文件中。
您现在可以 ssh 到远程系统的帐户,而无需使用密码。由于这是一项常见的任务,我创建了一个 shell 脚本来为我处理它。如果本地 SSH 密钥对不存在,这将创建它,然后将其复制到远程计算机。
最后一个
ssh
命令可以替换为ssh-copy-id
. 我没有这样做,因为我在发现之前编写了程序,ssh-copy-id
而且它对我来说总是足够好用。当不为 ssh 使用端口 22 时,更改此行: ssh $1 "[[ -d .ssh ]]... 到 ssh '-p 3433' $1 "[[ -d .ssh ]]... (用 3433 代替你的 ssh 端口号)
很棒的剧本!
干杯,py