Linux 不使用密码将公钥复制到远程节点
我需要使用bash脚本执行以下操作:Linux 不使用密码将公钥复制到远程节点,linux,bash,shell,ssh,public-key,Linux,Bash,Shell,Ssh,Public Key,我需要使用bash脚本执行以下操作: 在NodeA上生成公钥和私钥 将公钥复制到远程基站的授权密钥中 将NodeB添加到NodeA的已知_主机 我需要在没有密码提示的情况下完成所有这一切,以便ssh登录到NodeB 在第二步中,我甚至用“-I”指定私钥 下面的脚本现在仍然要求输入密码 #!/bin/bash sudo ssh-keygen -t rsa -N "" -f /root/.ssh/id_ccn_rsa ssh -i /root/.ssh/id_ccn_rsa -o StrictHo
#!/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"
没有魔法
要部署密钥,您必须至少能够在没有密钥的情况下登录一次。或者让可以登录并具有root访问权限的人为您部署公钥
除非您的帐户是在没有密码的情况下设置的,并且sshd配置了非默认的
permitteypasswords yes
选项,否则您不能在没有密码和密钥的情况下登录。首先告诉我们您如何能够不使用密码访问远程服务器,以及您拥有哪些用户和/或权限。首先排除有关传输任何文件的部分。我可以从系统中使用ssh将两个节点连接到一起。我需要用ssh从一个节点连接到另一个节点。为了让这两个节点相互通信,我希望设置一个单独的密钥对。我没有访问密码的权限。我现在唯一能做到这一点的方法是将来自nodeA的公钥复制粘贴到nodeB的authorized_keys列表中,同时使用类似saltstack或ansible的东西从我的pcConsider用ssh将其复制到这两个列表中。或者,由于此活动是其中之一,请使用群集ssh同时在所有主机上编辑文件。如果我有10//多个节点需要将某些内容scp到远程节点,我无法从每个节点手动登录。这就是我现在正在做的。但是有没有办法使它自动化呢?您必须使用ssh copy id
一次来将公钥部署到每个目标。之后,如果私钥没有密码,您可以不用密码登录。您可以在~/.ssh/config
中设置一个条目,为每个目标创建一个短别名,并告诉它要使用哪个私钥。