博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
免交互批量分发公钥的实现
阅读量:4983 次
发布时间:2019-06-12

本文共 2515 字,大约阅读时间需要 8 分钟。

 

生成公钥私钥

 每次连接都要输入密码

上面链接配置文件名字错了,应为vim /etc/ssh/sshd_config

 

操作命令过程:

[root@mcw1 ~]# ls .ssh/

ls: cannot access .ssh/: No such file or directory
[root@mcw1 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Od+6HjBBrHeUA5MP8rwckdakM89XrZNf0/kOjRPB4eI root@mcw1
The key's randomart image is:
+---[RSA 2048]----+
| .+*.. . |
| ..Bo= o o |
| *== .. = .|
| . =Bo. o +o|
| oS+o E =oo|
| o= o *+|
| o . + +|
| o + |
| .+. .|
+----[SHA256]-----+
[root@mcw1 ~]# ls .ssh/
id_rsa id_rsa.pub
[root@mcw1 ~]# ls -ld .ssh/
drwx------ 2 root root 38 Jul 30 17:50 .ssh/
[root@mcw1 ~]# cat .ssh/id_rsa.pub >>.ssh/authorized_keys
[root@mcw1 ~]# chmod 600 .ssh/authorized_keys

 

单台免交互分发公钥:

参考:https://blog.51cto.com/vinsent/1970780

[root@mcw1 ~]# cat 3.sh #!/usr/bin/expectspawn ssh-copy-id -i /root/.ssh/id_rsa.pub 172.168.1.5expect {    "yes/no" { send "yes\n";exp_continue }      # 替你回答下载公钥是的提示    "password" { send "123456\n" }         # 提示输入密码}interactexpect eof

 

多台批量免交互分发公钥:

[root@vinsent app]# cat ssh_auto.sh #!/bin/bash#------------------------------------------## FileName:             ssh_auto.sh# Revision:             1.1.0# Date:                 2017-07-14 04:50:33# Author:               vinsent# Email:                hyb_admin@163.com# Website:              www.vinsent.cn# Description:          This script can achieve ssh password-free login, #                       and can be deployed in batches, configuration#------------------------------------------## Copyright:            2017 vinsent# License:              GPL 2+#------------------------------------------#[ ! -f /root/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -P '' &>/dev/null  # 密钥对不存在则创建密钥while read line;do        ip=`echo $line | cut -d " " -f1`             # 提取文件中的ip        user_name=`echo $line | cut -d " " -f2`      # 提取文件中的用户名        pass_word=`echo $line | cut -d " " -f3`      # 提取文件中的密码expect <

host_ip.txt文件可以通过手动写(当然了这就显得不自动化)你可以使用扫描工具扫描你网络中的主机,然后配合awk等工具生成该文件。ip地址即登录用户名密码的文件实例:

[root@vinsent app]# cat host_ip.txt 172.18.14.123 root 123456172.18.254.54 root 123456

 

这样就能批量执行命令了:

 

 

 

 

参考链接:

https://blog.51cto.com/vinsent/1970780

https://www.cnblogs.com/panchong/p/6027138.html

 

转载于:https://www.cnblogs.com/machangwei-8/p/11272824.html

你可能感兴趣的文章
喜欢就好
查看>>
MVC3基础嵌套总结
查看>>
QML 基本可视元素之Rectangle 七
查看>>
Python--set常用操作函数
查看>>
Java基于Tomcat Https keytool 自签证书
查看>>
机房收费调试问题(一)
查看>>
Perl多进程处理Web日志
查看>>
Oracle中MD5+Base64加密实现
查看>>
linux 编辑文档
查看>>
Java中ArrayList类的用法(转)
查看>>
作业5 指针应用1。
查看>>
关于JAVA项目中的常用的异常处理情况总结
查看>>
字段类型的选择原则
查看>>
StructLayoutLayout 属性无法通过GetCustomAttributes 或者 Attributes获得
查看>>
如何一键收藏微信文章?
查看>>
二维码图片以字符串的形式保存DB,已文件流显示页面上
查看>>
install
查看>>
好久没有写东西了发一个1年前写的东西
查看>>
Struts2、Spring、Hibernate 高效开发的最佳实践(转载)
查看>>
使用cmd查看电脑连接过的wifi密码并将密码发送至指定邮箱(三)
查看>>