无需密码即可将公钥复制到远程节点

时间:2014-08-14 20:33:52

标签: linux bash shell ssh public-key

我需要使用bash脚本来执行以下操作:

  1. 在NodeA上生成公共私钥
  2. 将公钥复制到远程NodeB的authorized_keys
  3. 将NodeB添加到NodeA的known_hosts。
  4. 我需要在没有密码提示的情况下完成所有这些操作,以便进入NodeB

    在第二步中,我甚至用“-i”指定私钥。

    以下脚本我现在仍然要求输入密码

    #!/bin/bash
    
    sudo ssh-keygen -t rsa -N "" -f /root/.ssh/id_ccn_rsa
    ssh -i /root/.ssh/id_ccn_rsa -o StrictHostKeyChecking=no $1
    sudo sh -c "ssh-keyscan $1 >> /root/.ssh/known_hosts"
    

1 个答案:

答案 0 :(得分:0)

没有魔力。

要部署密钥,您必须能够在没有密钥的情况下至少登录一次。或者让可以登录并具有root访问权限的人为您部署公钥。

除非您的帐户是在没有密码的情况下设置的,否则您无法在没有密码且没有密钥的情况下登录,并且sshd配置了非默认PermitEmptyPasswords yes选项。