ssh服务及批量分发自动化管理

简介:
+关注继续查看

Ssh服务知识:

Ssh包含opensshopenssl两种包。

Ssh客户端包含ssh连接工具及scp拷贝、sloginsftp等应用程序。

Less /etc/ssh/sshd_config这是查看服务端配置,sshd是服务端,ssh是客户端

~/.ssh/known_hosts当客户端ssh服务端后会在本地的这个位置放一个名为known_hosts的公钥。

这个文件里可能有多个密钥,因为可能连了多个服务器。


两种连接方式:

Ssh -p22 x.x.x.x     -p22是默认可以忽略,那如果修改了端口号就要加上

Ssh -p22 用户@x.x.x.x

两种安全验证方式:一是基于口令,二是基于密钥(只需要用户名和密钥文件就可以了)。

Lsof -i :22netstat -anptu |grep 22

出于安全考虑,ssh在服务端会修改一些常用参数如下:

Port xxxx  修改默认端口号

PermitRootLogin no 禁止root登陆

PermitEmptyPasswords no  禁止空密码登陆

UseDNS no  不适用DNS

GAASPIAuthentication no 客户端登陆慢的调优参数


Nmap x.x.x.x -p1-65535 扫描命令,扫描端口1-65535的哪些端口开启了

Ssh root@x.x.x.x /sbin/ifconfig可以不连过去而在对方机器上执行命令


scp -P52113  /root/test.txt root@192.168.44.50:/tmp 端口用P  默认22的话就不用加,推拉都可以,书写方法一样就源目标调换位置下就行。

-r是拷贝目录,-p拷贝前后保持稳健或目录的属性。

scp是全量拷贝,效率不高,后期有rsync就是增量拷贝。

 

sftp oPort=52113 root@x.x.x.x 默认连过去是用户家目录

put /data1/a.txt将自己目录文件上传到对方家目录下,当然也可以上传到任何目录,put后的目标加上目录名就行,然后get a.txt

 

批量分发自动化管理:

先创建一个密钥对,就像先买一把锁和一把钥匙,然后把锁复制多份放到不通机器上,钥匙在手上就可以对多个服务器进行开锁管理。

密钥对在任何机器上创建都行

理论上密钥对跟用户没有任何关系,也就是无论你什么人都可以拿着对的钥匙去开对应的锁,为了规范可以创建基于用户的但不要用root

密钥对有两种方法,默认rsa 通过-t添加。ssh-keygen -t dsa 然后enter键什么都不输入一路到底就行了。创建密钥对就像去买钥匙和锁一样是不需要操心的。

/home/oldboy/.ssh/id_dsa 密钥对默认存放地点

id_dsa     私钥 私钥为钥匙文件权限小 通过ls -l即可查看权限644

id_dsa.pub 公钥

然后.ssh目录权限为700   这样才能保证密钥创建成功

ssh-copy-id -i ~/.ssh/id_dsa.pub weipeng@192.168.44.40 如出现.ssh/authorized_keys即创建成功。这会会在锁端~/.ssh下变成为authorized_keys意为加个外包装,免得人发现?且权限变为600

ssh-copy-id实际上是/usr/bin/ssh-copy-id的一个shell脚本,用which ssh-copy-id

可以看,如果修改ssh端口了,可以在vi /usr/bin/ssh-copy-id下的参数。

 

企业简单批量分发应用脚本:

vi fenfa.sh

if [ $# -ne 1 ]

  then /bin/sh $0 arg1

  exit

for ((n=5;n<100;n++))

do

    scp $1 oldboy@192.168.44.$n:~

done

以上脚本前提这些范围ipssh地址要都打通,否则个个询问非常耗时,不如手动写几个已经打通的值。

 

但是ssh无密钥分发也有个问题,第一次打通的时候需要将公钥传过去 ,因为密钥还没形成这样传会要求输入密码,所以如果机器多了也是个问题,后期可用expert解决。


常用案例将/etc/hosts文件做好好批量传到所有机器实现域名解析:

1、先通过普通用户将hosts文件批量scp到所有机器的家目录,由于普通用户没有拷贝到/etc下的权限,只有传到家目录下,

2、visudo提权普通用户拥有root用户的cp命令权限,但只需要在分发的机器上切换到root然后visudo,不需要所有机器都切换到root角色,生产环境中不可能所有机器都给root权限的,但现在就有一个问题,也就是sudo本机提权后如何让所有的机器把/home/oldboy下的hosts都拷贝到/etc/下呢?此时要用到关键的远程sudo,这个远程sudo就是利用ssh的特殊参数-t,如果不用远程sudo,可以用setuid 权限提权为s,可将cp设置成setuidchmod u+s `which cp`或者chmod 4755 `which cp`

3、scp /home/oldboy/hosts weipeng@x.x.x.x:~

4、ssh -t weipeng@x.x.x.x sudo /bin/cp /home/oldboy/hosts /etc/hosts

 

IP地址:

/sbin/ifconfig eth0|sed -rn 's#^.*dr:(.*)  Bc.*$#\1#g' 执行的命令加引号或括号都可以。

让发过去带有ip地址标签的文件:scp -rp data oldboy@x.x.x.x:~/data_$(/sbin/ifconfig eth0|sed -rn 's#^.*dr:(.*)  Bc.*$#\1#g')

本文转自  流颗星  51CTO博客,原文链接:http://blog.51cto.com/liukexing/1964779


相关文章
|
3月前
|
iOS开发 开发者 MacOS
初雪云推出了全新的“iOS证书自动化服务”,欢迎体验!
我们为开发者推出了全新的“iOS证书自动化服务”!现在,您可以快速上传组织/个人苹果账号,并在线生成正式证书和测试证书。无需使用MAC OS系统,不再需要繁琐的手动证书制作流程;而且不必安装任何软件,只需在网页上即可方便的绑定测试设备UDID。这项服务能够帮助开发者轻松打包和快速测试应用,提供更全面的一站式流程服务。赶快来试试吧!
57 0
|
7月前
|
弹性计算 运维 Shell
《泛娱乐行业技术服务白皮书》——四、泛娱乐业务保障与调优最佳实践——4.1游戏运维SRE实践——4.1.3游戏部署的自动化实践
《泛娱乐行业技术服务白皮书》——四、泛娱乐业务保障与调优最佳实践——4.1游戏运维SRE实践——4.1.3游戏部署的自动化实践
104 0
|
7月前
|
SQL Java Devops
【数据库自动化测试流程构建】两大服务
【数据库自动化测试流程构建】两大服务
75 0
|
8月前
|
存储 运维 监控
经典好文:银行业IT服务连续性体系与灾备自动化切换经验分享
经典好文:银行业IT服务连续性体系与灾备自动化切换经验分享
106 0
|
11月前
|
测试技术
Unittest接口和UI自动化测试框架中的发送邮件服务如何使用?
Unittest接口和UI自动化测试框架中的发送邮件服务如何使用?
141 0
Unittest接口和UI自动化测试框架中的发送邮件服务如何使用?
|
关系型数据库 RDS
《TcpRT:阿里云RDS智能诊断系统云上大规模部署自动化服务的客户实践经验》电子版地址
TcpRT:阿里云RDS智能诊断系统云上大规模部署自动化服务的客户实践经验
127 0
《TcpRT:阿里云RDS智能诊断系统云上大规模部署自动化服务的客户实践经验》电子版地址
|
存储 消息中间件 缓存
支撑性服务 & 自动化能力
云原生系统依赖于许多不同的辅助资源,例如数据存储、消息队列、监视和身份服务,这些服务统称为支撑性服务。
支撑性服务 & 自动化能力
|
负载均衡 监控 Unix
RH358优化Web服务器流量--自动化执行 Web 服务优化
RH358优化Web服务器流量--自动化执行 Web 服务优化
282 0
RH358优化Web服务器流量--自动化执行 Web 服务优化
|
存储 网络协议 Linux
RH358服务管理和自动化--自动化服务管理和网络接口配置
RH358服务管理和自动化--自动化服务管理和网络接口配置
206 0
RH358服务管理和自动化--自动化服务管理和网络接口配置
|
存储 网络协议 Linux
RH358服务管理和自动化--配置网络接口
RH358服务管理和自动化--配置网络接口
162 0
RH358服务管理和自动化--配置网络接口
推荐文章
更多