当前位置:数据分析 > 实现无交互批量分发公钥

实现无交互批量分发公钥

  • 发布:2023-09-30 18:44

看起来,我有私钥,它有我的公钥,并且保存在它的authorized_keys 文件中,然后我可以连接到它。因此,如果我想在没有密码的情况下连接到其他主机,我这里有公钥和私钥。我分发公钥并将其存储在对方的文件中,然后我可以无需密码进行连接。

如何连接到paramiko?应该是我有私钥,你们都有我的公钥。如果我想连接某台计算机,我可以直接将其私钥复制到程序中并连接。

生成公钥和私钥

每次连接都需要输入密码

linux密钥生成

上面链接的配置文件名称错误,应该是 vim /etc/ssh/sshd_config

操作指令流程:

[root@mcw1 ~]# ls .ssh/
ls: 无法访问.ssh/: 没有这样的文件或目录
[root@mcw1 ~]# ssh-keygen -t rsa
正在生成公钥/私钥 rsa 密钥对。
输入保存密钥的文件 (/root/.ssh/id_rsa):
已创建目录 '/root/.ssh'。
输入密码(空表示无密码)密码):
再次输入相同的密码:
您的身份信息已保存在 /root/.ssh/id_rsa 中。
您的公钥已保存在 /root/.ssh/id_www.sychzs.cn 中。
密钥指纹为:
SHA256:Od+6HjBBrHeUA5MP8rwckdakM89XrZNf0/kOjRPB4eI root@mcw1
密钥的随机图像为:
+---[RSA 2048]----+
| .+*.. |
| ..Bo= o o |
| *== .. = .|
| 。 =博。 o +o|
| oS+o E =oo|
| o= o *+|
|哦。 + +|
| o + |
| .+. .|
+----[SHA256]-----+
[root@mcw1 ~]# ls .ssh/
id_rsa id_www.sychzs.cn
[root@mcw1 ~]# ls -ld .ssh/
drwx------ 2 root root 7月30日38日17:50 .ssh/
[root@mcw1 ~]# cat .ssh/id_www.sychzs.cn >>.ssh/authorized_keys
[root@mcw1 ~]# chmod 600 .ssh/authorized_keys

单个设备的免交互公钥分发:

参考:https://www.sychzs.cn/vinsent/1970780

[root@mcw1 ~]#猫3.sh
#!/usr/bin/期望
生成 ssh-copy-id -i /root/.ssh/id_www.sychzs.cn 172.168.1.5
预计 {
    "是/否" {发送"是\n";exp_continu e } # 回答为您下载公钥的提示
    "密码" {发送"123456\n" } # 提示输入密码
}
相互影响
期待 eof

将公钥批量分发到多个设备,无需交互:

[root@vinsent app]# cat ssh_www.sychzs.cn
#!/bin/bash
#------------------------------------------------------------ --#
# 文件名:ssh_www.sychzs.cn
# 修订版:1.1.0
# 日期: 2017-07-14 04:50:33
# 作者:文森特# 邮箱:hyb_admin@163.com
# 网址:www.sychzs.cn
# 说明:此脚本可以实现ssh密码-免登录,
# 并且可以部署in批次,配置
#------------------------------------------------------------#
#版权:2017文森特
# 许可证:GPL 2+
#------------------------------------------------------------#
[! -f /root/.ssh/id_www.sychzs.cn ] && ssh-keygen -t rsa -P '' &>/dev/null # 密钥对 如果没有则创建密钥存在
同时读行;do
        ip=`回显$line | cut -d " " -f1` # 提取文件中的ip
        user_name=`echo $line | cut -d " " -f2` # 提取文件中的用户名
        pass_word=`echo $line | cut -d " " -f3` # 从文件中提取密码
预计<<EOFspawn ssh-copy-id -i /root/.ssh/id_www.sychzs.cn $user_name@$ip # 将公钥复制到目标主机
        预计 {
                "是/否" {发送"是\n";exp_continu e} #期望实现密码自动输入
                "密码" {发送 "$pass_word\n"}
        }
        期望 eof
EOF

done < /root/host_ip.txt # 读取存储ip的文件

host_ip.txt文件可以手动写入(当然,这不是自动化的)。您可以使用扫描工具扫描网络上的主机,然后使用awk等工具生成文件。文件示例,其中 IP 地址是登录用户名和密码:

[root@vinsent app]# cat host_ip.txt
172.18.14.123123456
172.18.254.54123456

这样就可以批量执行命令了:

简单设置和免密码登录

su - mcw
mkdir ~/.ssh/
cd ~/.ssh/
ssh-keygen -t rsa #一直往下输入
cat id_ www.sychzs.cn >> 授权密钥# 将所有公钥收集到一个文件中并将其放在 .ssh

[root@mcw1 ~]$ vim 授权密钥
[root@mcw1 ~]$ 猫授权密钥
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJyw2D+DNS+JbwFUpD+Vy9h/D85quXYUZokNqsm5Uqq58LLteBnIo/1l5pE+oOtVaBFVjsMoGcLHXcNahJHHbRACYAXJpuY YOcw E0t++BAqsG0jsLrpovyl0BZmDDDtotwm73anKCzHduJadi71j2eJ7U6dXHiSmKotJEpfy5vDe3nabvcbfKvOWU+ozzcIxjNDJxCTkhQHvokO+ZetioqLeWe8E4zfcL5w43YxTQfOBP1IDTKNJZ mTCHJHhmAWm n5eaMn3OXSAZGqmjHC4+Ch0Mz9MMTW1r3xxz8hq6907PvA6PxMkyQaVzBdDOhN3n77canaRo2C1gkBkDWVGoW9 root@mcw2
[root@mcw1 ~]$ mv 授权密钥.ssh/
[root@mcw1 ~]$ cat .ssh/id_www.sychzs.cn >>.ssh/authorized_keys
[root@mcw1 ~]$ cat .ssh/authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJyw2D+DNS+JbwFUpD+Vy9h/D85quXYUZokNqsm5Uqq58LLteBnIo/1l5pE+oOtVaBFVjsMoGcLHXcNahJHHbRACYAXJpuY YOcw E0t++BAqsG0jsLrpovyl0BZmDDDtotwm73anKCzHduJadi71j2eJ7U6dXHiSmKotJEpfy5vDe3nabvcbfKvOWU+ozzcIxjNDJxCTkhQHvokO+ZetioqLeWe8E4zfcL5w43YxTQfOBP1IDTKNJZ mTCHJHhmAWm n5eaMn3OXSAZGqmjHC4+Ch0Mz9MMTW1r3xxz8hq6907PvA6PxMkyQaVzBdDOhN3n77canaRo2C1gkBkDWVGoW9 root@mcw2
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7dFtB9jFGSYHKbxrF3mwbBfP3Ao9ijw88w/9lP0/pclX+0To7XWcJlA7V0W5kyHvUBK1pk96ISaWlGxESbW1Csr2RJA 7/O/zmhVmjcizPmGg27MQZlBYVHV1jy5mJpEcXgleCOznsTp6jGodAlDrMKEEWeR/O7tE0Mzl1iPWxLagrz0UYhOGjfTR6gdZrTgKwDs1ha9aWp72vwsfcj/RT+Ci/qtp1aMVJAFV63FaO OOL 8pgjPb4DHbH03Z6PPsa3+1JCuUt2vv5/dVA1ieReNM2gpUHGarJ6LYmIfaacO+1tQ7E8qFn0HLxralwZI9d3XrcmqgTFCfyKpOR6vpNJl根@mcw1

验证后,只有mcw2的公钥被收集到mcw1中,mcw1没有密码无法登录mcw2。当公钥集也放在mcw2下时,mcw1无需密码即可登录mcw2

一次免密登录完整流程

[root@mcw4 ~]$ ssh-keygen
生成public/private rsa 密钥对。
输入要保存密钥的文件 in (/root/.ssh/id_rsa):
创建目录 '/root/.ssh'。
输入密码(为空无密码):
再次输入相同的密码:
您的身份信息已保存在 /root/.ssh/id_rsa。
您的 public 密钥已保存在 /root/.ssh/id_www.sychzs.cn。
密钥指纹:
SHA256:mv6P+3Lj/ZbsRs2Q5iPvOtoaYg4CH5RZla7jvLHhvpM root@mcw4
关键'的随机艺术图像是:
+---[RSA 2048]----+
| ....|
| + . |
| + . 。 |
| 。 。 + |
| 。 。 .S o + |
|哦。哦。 + o|
|哦*哦。 = o |
| +EB.oo+。 * |
| .B==B*++O+ |
+----[SHA256]-----+
[root@mcw4 ~]$
[root@mcw4 ~]$ ssh-copy-id 10.0.0.135/usr/bin/ssh-copy-id: 信息: 要安装的密钥来源: "/root/.ssh/id_www.sychzs.cn"
主机'10.0.0.135 (10.0.0.135)'的真实性无法确定'。 
ECDSA 密钥指纹 SHA256:RkM1yEJzXaR8iURn53usKFVOqnHO4rqTVW+FVrx1VX4。
ECDSA 密钥指纹 is MD5:51:60:cc:9a:de:a3:16:c7:f9:93:a7:07: 6562:0f:61。
您确定要继续连接(是/否)吗?/usr/bin/ssh-copy-id:INFO:尝试使用 new 密钥在 中记录 ,以过滤 任意已经安装的
/usr/bin/ssh-copy-id: INFO: 1 密钥仍需安装 -- 如果现在提示您安装键
root@10.0.0.135'密码:

添加的钥匙数量:1

现在尝试登录计算机,使用:"ssh '10.0.0.135'"并检查以确保仅添加了您想要的密钥。

[root@mcw4 ~]$ ssh 10.0.0.135
最后登录: 周日 1 月 2 08:59:36 2022 来自 10.0.0.1
[root@mcw5 ~]$ 

 

 

 

 

 

参考链接:

https://www.sychzs.cn/vinsent/1970780

https://www.sychzs.cn/panchong/p/6027138.html

 

相关文章