博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ssh免秘钥登录
阅读量:4657 次
发布时间:2019-06-09

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

简介

SSH 为 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括、、、、 、,以及其他平台,都可运行SSH。

 

最基本的用法

SSH主要用于远程登录。假定你要以用户名user,登录远程主机host,只要一条简单命令就可以了。

  $ ssh user@host

如果本地用户名与远程用户名一致,登录时可以省略用户名

 $ ssh host

SSH的默认端口是22,也就是说,你的登录请求会送进远程主机的22端口。使用p参数,可以修改这个端口。

  $ ssh -p 2222 user@host

上面这条命令表示,ssh直接连接远程主机的2222端口。

下面开始部署ssh秘钥的批量分发

第一步:安装sshpass免交互工具并进行SSH-key的批量分发

下载epel源并更新yum仓库

[root@controller ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo[root@controller ~]# yum clean all -y && yum makecache

第二步:创建密钥对文件

免交互创建密钥对

[root@controller ~]# ssh-keygen -t dsa -f ~/.ssh/id_dsa -P ""Generating public/private dsa key pair./root/.ssh/id_dsa already exists.Overwrite (y/n)? yYour identification has been saved in /root/.ssh/id_dsa.Your public key has been saved in /root/.ssh/id_dsa.pub.The key fingerprint is:SHA256:Qn8BNpM9ZpcRUgV7ewxn0GTOoZvfn5CcqQz7Dt7xqlA root@controllerThe key's randomart image is:+---[DSA 1024]----+|        =o..=*o+o||       ..+=.o..=o||      .  o.o..o =||     . .   . .o* ||      . SE.  o. o||       ...  . =..||       . o . * ..||        o * + . o||         ++B.. ..|+----[SHA256]-----+[root@controller ~]# ls ~/.ssh/id_dsa  id_dsa.pub命令说明:ssh-keygen:生成密钥对命令-t:指定密钥对的密码加密类型(rsa,dsa两种)-f:指定密钥对文件的生成路径包含文件名-P(大写):指定密钥对的密码

第三步:免交户方式分发公钥

[root@controller .ssh]# sshpass -p "123" ssh-copy-id -i ~/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no root@192.168.128.165"

命令说明:

sshpass:专为ssh连接服务的免交户工具

-p :指定登录的密码

ssh-copy-id:自动分发公钥的工具

-i:指定公钥路径

-o StrictHostKeyChecking=no :不进行对方主机信息的写入(第一次ssh连接会在know_hosts文件里记录)

交互式分发命令

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.91.135

第四步:测试

[root@controller .ssh]# ssh root@192.168.128.165Last login: Wed Jan 10 02:32:04 2018 from controller

编写脚本:

#!/bin/bashUser=rootpassWord=123port=2266function YumBuild(){echo "正在安装epel源yum仓库,请稍后..."cd /etc/yum.repos.d/ &&\[ -d bak ] || mkdir bak[ `find ./*.* -type f | wc -l` -gt 0 ] && find ./*.* -type f | xargs -i mv {} bak/wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo &>/dev/nullyum -y clean all &>/dev/nullyum makecache &>/dev/null}rpm -q sshpass &>/dev/null || yum -y install sshpass &>/dev/nullif [ $? -gt 0 ];thenYumBuildyum -y install sshpass &>/dev/null || (echo "sshpass build error!" && exit)fi[ -d ~/.ssh ] || mkdir ~/.ssh;chmod 700 ~/.sshecho "正在创建密钥对...."rm -rf ~/.ssh/id_dsa ~/.ssh/id_dsa.pubssh-keygen -t dsa -f ~/.ssh/id_dsa -P "" &>/dev/nullfor ip in `cat /root/Pingip.txt`doping $ip -c1 &>/dev/nullif [ $? -gt 0 ];thenecho "$ip无法ping通请检查网络"continuefisshpass -p "$passWord" ssh-copy-id -i ~/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no -p2266 ${User}@$ip" &>/dev/nullecho "$ip 密钥分发成功"done

 

转载于:https://www.cnblogs.com/Dev0ps/p/8259099.html

你可能感兴趣的文章
Entity Framework底层操作封装(3)
查看>>
InputStream 转换 InputStreamReader再转换BufferedReader
查看>>
在线程池中的使用spring aop事务增强
查看>>
javascript相关知识
查看>>
数组对象去重
查看>>
你未必知道的12个JavaScript技巧
查看>>
mysql的基本操作命令
查看>>
微信小程序---数据缓存
查看>>
Python网页正文转换语音文件的操作方法
查看>>
常用SQL查询语句
查看>>
Redis Windows版安装详解
查看>>
linux后台运行python程序 nohup
查看>>
吴裕雄--天生自然 高等数学学习:对面积的曲面积分
查看>>
css
查看>>
消除头文件
查看>>
Android中数据文件解析(Json解析)
查看>>
自定义seekBar设置进度条背景图片
查看>>
java容器类1:Collection,List,ArrayList,LinkedList深入解读
查看>>
16日彻底去除安卓应用的内置广告
查看>>
再谈.NET Micro Framework移植
查看>>