Day45-SSH远程连接服务

2024-03-16 09:52
文章标签 服务 连接 远程 ssh day45

本文主要是介绍Day45-SSH远程连接服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Day45-SSH远程连接服务

  • 1.SSH服务介绍
    • 1.1 基本介绍
    • 1.2 网络服务对应端口介绍
    • 1.3 远程连接服务
    • 1.4 SSH远程连接故障排错
    • 1.5 SSH知识要点总结
    • 1.6 ssh服务端和客户端软件
    • 1.7 ssh客户端命令介绍与实践
      • 1.7.1 ssh命令:远程连接linux
      • 1.7.2 ssh命令:远程执行命令
      • 1.7.3 scp命令:远程全量拷贝(secure copy),【加密】的拷贝
      • 1.7.4 sftp(了解即可)
    • 1.8 ssh服务配置优化
    • 1.9 SSH服务通信原理
    • 1.10 SSH两种认证方式
      • 1.10.1 密码认证 pam
      • 1.10.2 秘钥认证
    • 1.11 Linux主机之间通过秘钥认证来连接:
    • 1.12 环境准备
    • 1.13 开始实战
    • 1.14 ssh免密码连接生产应用
    • 1.15 批量分发管理方案

【相当于工组中5-20台】
m01管理机:eth0:10.0.0.61 eth1:172.16.1.61(不要配置网关、不要DNS)
1、批量管理(ssh以及ansible),分发软件、安装服务、运行命令和脚本。
2、跳板机(jumpserver)。就是登陆跳板机才能管理其他服务器。
3、日志审计(jumpserver)。
4、VPN服务,只有连接上VPN才能使用管理机。PPTP
5、无人值守安装(批量装1000台),kickstart,cobbler
6、zabbix监控服务,代码发布(git+jenkins)

1.SSH服务介绍

1.1 基本介绍

古老基础远程连接服务,SSH是远程连接Linux,管理Linux的服务。
Secure Shell Protocol 简写SSH,安全的Shell协议,在传输过程中,数据是加密的。
适合telnet是不同的,因为telnet不加密的。
使用的默认端口为22(一台机器的不同功能就用端口区分)

1.2 网络服务对应端口介绍

	873 rsync22  ssh25  smtp  #邮件发送服务110 pop3  #邮件接收服务80  http  #网页服务443 https #加密的网页服务23  telnet111 rpcbind21  ftp3389 windows远程桌面161  SNMP3306  MySQL

ssh协议属于tcp/ip协议族

1.3 远程连接服务

telnet 数据是明文的
1)连交换机和路由器配置。
2)telnet ip port 监测端口以及服务是否好的。

ssh协议:在传输过程中数据是加密的。安全的Shell协议。
c/s架构:客户端和服务端,称之为c/s架构,client/server,胖客户端。
b/s架构:浏览器/服务器,称之为b/s架构,browser/server 大趋势,瘦客户端。

ssh服务 客户端/服务端软件
超市收银:c/s,收银,客户端可以很强大,页面展示都可以在客户端,胖客户端。
网页服务:b/s browser/server 瘦客户端,内容展示都是服务端控制的。

1.4 SSH远程连接故障排错

xshell 客户机
sshd 服务端(10.0.0.61)
xshell 客户机

  1. ping 10.0.0.61(网络通了)
    不通。检查服务器IP配置,网卡是否启动,还不通。。禁PING,vnet8网卡是否启动,虚拟网络编辑器还原。
  2. telnet 10.0.0.61 22(nmap)确定服务是否开通。
    不通。1.防火墙阻挡。2.服务端端口没开(netstat -lntup|grep ssh或者lsof -i :22)。3.telnet命令是不是对的。

=xshell ssh连不上服务器 如何排查?==
面试时 画图:
1.ping IP:
不通:检查物理网络网线,电脑IP设置。
通:表示物理链路通的。

2.telnet ip port
不通:查服务器端防火墙和SSH服务(ps -ef|grep sshd,netstat -lntup|grep sshd)
通:

3.检查本地xshell 连接的IP 端口 协议 密码 用户

1.5 SSH知识要点总结

  • SSH是安全的加密协议,用于远程连接Linux系统。
  • SSH默认端口是22,安全协议版本为SSH2,除了2之外还有SSH1(有漏洞)。
  • SSH服务端主要包含两个服务功能SSH远程连接和SFTP服务。
  • Linux SSH客户端包含ssh远程连接命令、远程拷贝scp命令、sftp连接命令等。

1.6 ssh服务端和客户端软件

SSH服务由服务端软件OpenSSH和客户端(常见的有SSH(Linux)/SecureCRT/Putty/Xshell)组成,SSH服务默认使用22端口提供服务,它有两个不兼容的SSH协议版本,分别是1.x和2.x。

[root@m01 ~]# rpm -qa openssh openssl
openssh-7.4p1-16.el7.x86_64   #<==ssh服务。
openssl-1.0.2k-16.el7.x86_64  #<==加密用的ssl。yum install openssl openssh -y[root@m01 ~]# rpm -qa openssh openssl
openssh-7.4p1-21.el7.x86_64
openssl-1.0.2k-21.el7_9.x86_64
[root@m01 ~]# rpm -qa|grep ssh
openssh-7.4p1-21.el7.x86_64
libssh2-1.8.0-4.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64

1)Linux ssh客户端里含有的命令

[root@m01 ~]# rpm -ql openssh-clients
/usr/bin/scp          #全量远程拷贝文件(加密),类似rsync。
/usr/bin/sftp         #sftp服务,加密传输文件。
/usr/bin/ssh          #远程连接,linux到linux之间的链接。
/usr/bin/ssh-copy-id  #拷贝密钥中的公钥文件的。

2)Linux ssh服务单端里含有重要内容

[root@m01 ~]# rpm -ql openssh-server
/etc/ssh/sshd_config                        ###ssh配置文件
/usr/lib/systemd/system/sshd.service        ###ssh systemctl启动的文件
/usr/libexec/openssh/sftp-server            ##sftp服务。
/usr/sbin/sshd                              ##sshd服务。
/usr/sbin/sshd-keygen                       ##生成秘钥的工具

3)openssl负责加密的相关命令和服务

[root@m01 ~]# rpm -ql openssl
/etc/pki/CA
/etc/pki/CA/certs
/etc/pki/CA/crl
/etc/pki/CA/newcerts
/etc/pki/CA/private
/etc/pki/tls/certs/Makefile
/etc/pki/tls/certs/make-dummy-cert
/etc/pki/tls/certs/renew-dummy-cert
/etc/pki/tls/misc/CA
/etc/pki/tls/misc/c_hash
/etc/pki/tls/misc/c_info
/etc/pki/tls/misc/c_issuer
/etc/pki/tls/misc/c_name
/usr/bin/openssl

配置文件:

[root@m01 ~]# ll /etc/ssh/sshd_config 
-rw-------. 1 root root 3907 411 2018 /etc/ssh/sshd_config

/etc/ 服务的配置目录。
重启以及设置开机自启动:

[root@m01 ~]# systemctl restart sshd
[root@m01 ~]# systemctl enable sshd

4)ssh客户端工具介绍

windows下:xshell     #个人免费,用的多一些。\*****SecureCRT  #收费,很好,之前有过木马问题。putty      #10年前,没人开发了,界面太简单。
linux:ssh命令

1.7 ssh客户端命令介绍与实践

1.7.1 ssh命令:远程连接linux

-p 端口
ssh -p 22 root@10.0.0.31
命令 -p 端口 用户@IP
上述命令相当于ssh 10.0.0.31(默认22,默认root)

1.7.2 ssh命令:远程执行命令

[root@m01 ~]# ssh 10.0.0.7 ifconfig
root@10.0.0.7's password: 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 10.0.0.7  netmask 255.255.255.0  broadcast 10.0.0.255inet6 fe80::c984:d443:9240:f09a  prefixlen 64  scopeid 0x20<link>

1.7.3 scp命令:远程全量拷贝(secure copy),【加密】的拷贝

SCP命令参数:

	-P 端口-r 递归-p 保持属性-l 限制速度
[root@m01 ~]# mkdir /data/
[root@m01 ~]# cp -a /etc /data/推:
scp -P 22 -rp /data root@172.16.1.7:/tmp/
类似rsync远程shell的推送模式:
rsync -avz /data root@172.16.1.7:/opt
rsync -avz /data -e "ssh -p 22" root@172.16.1.7:/opt拉:
scp -P 22 -rp root@172.16.1.7:/tmp/data /tmp/
类似rsync远程shell的拉取模式:
rsync -avz root@172.16.1.7:/opt/data /data

对比下scp和rsync
scp 每一次都全量拷贝,加密拷贝
rsync第一次全量,以后增量拷贝,远程shell也是加密拷贝。

实践:

[root@m01 ~]# scp -P22 -rp /etc root@172.16.1.7:/tmp/
The authenticity of host '172.16.1.7 (172.16.1.7)' can't be established.
ECDSA key fingerprint is SHA256:qZSBkrmOv7xO/63qOU1uLXkPyNVHdkqvrNAcAmXqNEk.
ECDSA key fingerprint is MD5:23:d0:cb:a9:f4:7c:0b:eb:2d:07:00:e1:a3:12:d8:33.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.7' (ECDSA) to the list of known hosts.
root@172.16.1.7's password: 简单拉的写法:
scp -rp 172.16.1.7:/tmp/etc /tmp

1.7.4 sftp(了解即可)

sftp命令:

  1. 加密的ftp服务。
  2. 默认缺点不能锁定固定某个目录(vsftp),如果需要固定目录可自己研究。
    ftp:vsftp服务。RHCE课程里讲。

实践:在10.0.0.61上连接10.0.0.7

sftp  -oPort=22 root@172.16.1.7
sftp> put "/etc/hosts"    #上传远端家目录。
sftp> put /etc/hosts /tmp #上传远端指定目录/tmp。
sftp> get /etc/yum.conf   #下载到本地家目录。
sftp> get oldboy.txt /etc #下载到本地指定目录/etc

sftp服务也支持windows ftp客户端:
winscp软件,flashftp,xshell也支持sftp

1.8 ssh服务配置优化

[root@m01 ~]# ll /etc/ssh/ssh*
-rw-r--r--. 1 root root     2276 411 2018 /etc/ssh/ssh_config  #ssh配置文件。
-rw-------. 1 root root     3907 411 2018 /etc/ssh/sshd_config #sshd服务端配置文件。

服务配置优化:

####Start by oldboy#2018-04-26###
Port 52113                          #使用大于10000的端口
PermitRootLogin no                  #禁止root远程登录,可以su - root,C7需要改yes为no
PermitEmptyPasswords no             #禁止空密码登录,C7默认就是UseDNS no                           #不使用dns解析,yes改为no
GSSAPIAuthentication no             #禁止连接慢的解决配置
ListenAddress 172.16.1.61:52113     #只允许内网IP连接SSH(172.16.1.0)
####End by oldboy#2018-04-26###

58期集群架构实际配置:

####Start by oldboy#2018-04-26###
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
#ListenAddress 172.16.1.61:22  #将来配置VPN安全服务之后再加此行。
####End by oldboy#2018-04-26###

实践:

[root@web01 ~]# cp /etc/ssh/sshd_config{,.ori}

配置ListenAddress 172.16.1.61:22的测试:

[root@m01 ~]# telnet 10.0.0.7 22
Trying 10.0.0.7...
telnet: connect to address 10.0.0.7: Connection refused
[root@m01 ~]# 
[root@m01 ~]# 
[root@m01 ~]# 
[root@m01 ~]# telnet 172.16.1.7 22
Trying 172.16.1.7...
Connected to 172.16.1.7.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4

安全:
1、跳板机内网连接,跳板机使用vpn连接,然后内网连接。
2、防火墙限制只有源IP为内网IP访问22端口
最终配置为:

####Start by oldboy#2018-04-26###
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
#ListenAddress 172.16.1.7:22
####End by oldboy#2018-04-26###

自学:使用sed插入多行。一分钟搭建服务器
链接: https://blog.oldboyedu.com/commands-sed/

####Start by oldboy#2018-04-26###
Port 52113                          #使用大于10000的端口
PermitRootLogin no                  #禁止root远程登录,可以su - root,C7需要改yes为no
PermitEmptyPasswords no             #禁止空密码登录,C7默认就是UseDNS no                           #不使用dns解析,yes改为no
GSSAPIAuthentication no             #禁止连接慢的解决配置
ListenAddress 172.16.1.61:52113     #只允许内网IP连接SSH(172.16.1.0)
####End by oldboy#2018-04-26###

一键插入所有配置

sed -i.bak '21i Port 52113\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no\nListenAddress 172.16.1.61:52113' /etc/ssh/sshd_config

只能使用 52113端口,通过内网ip 172.16.1.61进行链接。

[root@web01 ~]# ssh -p 52113 oldboy@172.16.1.61
The authenticity of host '[172.16.1.61]:52113 ([172.16.1.61]:52113)' can't be established.
ECDSA key fingerprint is SHA256:wq7oaEHzecrisYEVO4MneeR3FEPnl+QHI+pNVriPP+o.
ECDSA key fingerprint is MD5:c7:44:c1:68:9d:17:e7:60:78:30:06:cc:f1:74:96:49.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[172.16.1.61]:52113' (ECDSA) to the list of known hosts.
oldboy@172.16.1.61's password: 
Last login: Tue Jul  6 10:05:57 2021 from 10.0.0.1
[oldboy@m01 ~]$ sudo su -
[sudo] oldboy 的密码:
上一次登录:二 76 10:06:02 CST 2021pts/1 上
[root@m01 ~]# 

网友SSH服务被入侵案例 变成你的。
案例见此地址: http://phenixikki.blog.51cto.com/7572938/1546669

企业安全项目实战案例:
给系统的重要文件或命令做指纹,随时可以比对文件增删改,报警

如何防止Linux SSH登录入侵方法总结
在这里插入图片描述

  1. 看好后门策略:用密钥登录,不用密码登陆。
  2. 看好后门策略:牤牛阵法:解决SSH安全问题。
    a.防火墙封闭非对外服务,指定源IP 限制(局域网、信任的公网)
    b.开启 SSH 服务,只监听本地内网IP(例如:ListenAddress 172.16.1.61)
  3. 看好后门策略:尽量不给 Linux 服务器外网 IP。
  4. 各种最小化原则(软件安装、权限授权等)。
  5. 给系统的重要文件或命令做指纹,随时可以比对文件增删改,报警。
  6. 给核心文件加锁。
  7. 看好后门策略:禁止直接远程 SSH 连接,登陆 vpn 服务再连接。
  8. 看好后门策略:更改默认端口 22,禁止管理员 root 远程连接。

1.9 SSH服务通信原理

SSH协议:SSH协议有两个版本:
SSH 1.X 有漏洞,不用了
SSH 2.X 主流。

查看C6

# Disable legacy (protocol version 1) support in the server for new
# installations. In future the default will change to require explicit
# activation of protocol 1
Protocol 2

查看7,连参数都没了。
在这里插入图片描述

在这里插入图片描述

ssh加密算法v2.x
在SSH 1.x的联机过程中,当Server接受Client端的Private key后,就不再针对该次联机的Key pair进行检验。此时若有恶意黑客针对该联机的Key pair对插入恶意的程序代码时,由于服务端你不会再检验联机的正确性,因此可能会接收该程序代码,从而造成系统被黑掉的问题。

为了改正这个缺点,SSH version 2多加了一个确认联机正确性的Diffie-Hellman机制,在每次数据传输中,Server都会以该机制检查数据的来源是否正确,这样,可以避免联机过程中被插入恶意程序代码的问题。也就是说,SSH version 2是比较安全的。

由于SSH1协议本身存在较大安全问题,因此,建议大家尽量都用SSH2的联机模式。而联机版本的设置则需要在SSH主机端与客户端均设置好才行。呵呵,大家不必担心,其实,事实上在当前的Centos5.x系统ssh服务端的配置,默认就是配置只支持SSH2的,我们只需要在ssh客户端远程连接时指定通过ssh2协议连接即可,相信绝大多数读者默认一直在这样做了。

客户端秘钥位置:

[root@m01 ~]# cat ~/.ssh/known_hosts 
10.0.0.7 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCdrXubncdyChmgskoFFEyttdd/iIW1t88O/mm0BQiwdB19ZlrH9XTSXdujBSla5FJRBhC1bdz902Gu6F4OSYOM=
172.16.1.7 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCdrXubncdyChmgskoFFEyttdd/iIW1t88O/mm0BQiwdB19ZlrH9XTSXdujBSla5FJRBhC1bdz902Gu6F4OSYOM=
10.0.0.41 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCdrXubncdyChmgskoFFEyttdd/iIW1t88O/mm0BQiwdB19ZlrH9XTSXdujBSla5FJRBhC1bdz902Gu6F4OSYOM=

1.10 SSH两种认证方式

1.10.1 密码认证 pam

用户名、密码,登录服务器

1.10.2 秘钥认证

不需要密码了,使用【秘钥文件】就可以连接服务器了。
扩展作业:如何使用xshell秘钥的方式连接Linux。

1.11 Linux主机之间通过秘钥认证来连接:

实践秘钥认证:
项目实践:批量管理、批量分发内容项目:

1.12 环境准备

m01 172.16.1.61
web01 172.16.1.7
web02 172.l6.1.8

见架构图
在这里插入图片描述

项目经验:实现SSH批量分发文件、批量管理服务方案
借助方法:秘钥文件,登录的时候不用使用密码。
在这里插入图片描述

10.0.0.61管理机(放钥匙)
10.0.0.7 被管理机(放锁)
10.0.0.8 被管理机(放锁)

是root用户,还是普通用户oldboy(sudo提权 很麻烦)?
就用root用户,保证权限。考虑简单、方便、又能兼顾安全。

SSH当前配置:
1)端口默认22
2)不需要禁止远程root登录
3)SSH服务监听内网卡(防火墙限制来源IP)
安全性和复杂度,需要一个平衡。

1.13 开始实战

1、基于root用户做Linux之间的秘钥认证。

2、生成密钥对(去超市买把锁),不需要指定服务器。

3、在61上生成密钥对(方便)。

[root@m01 ~]# ssh-keygen 
ssh-keygen 连续回车#ssh-keygen -d dsa
#→RSA与DSA加密算法的区别
#→RSA,是一种加密算法(PS:RSA也可以进行数字签名的),它的简写的来由是Ron Rivest、Adi Shamir和 Leonard Adleman
#→这三个人姓氏的第一个字母连接起来就是RSA。 
#→DSA就是数字签名算法的英文全称的简写,即Digital Signature Algorithm,简写就是DSA,
RSA既可以进行加密,也可以进行数字签名实现认证,而DSA只能用于数字签名从而实现认证。
自学:如何一键生成秘钥对(不需要按回车)。
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.[root@m01 ~]# ls /root/.ssh -l
总用量 12
-rw------- 1 root root 1679 422 12:12 id_rsa        #<==私钥,钥匙。
-rw-r--r-- 1 root root  390 422 12:12 id_rsa.pub    #<==公钥,锁。
-rw-r--r-- 1 root root  513 422 11:45 known_hosts

牢记:钥匙开锁。

4、把锁放到7/8上
/usr/bin/ssh-copy-id #专业拷贝密钥中的公钥文件的。

ssh-copy-id -i ~/.ssh/id_rsa.pub 172.16.1.7
ssh-copy-id -i ~/.ssh/id_rsa.pub 172.16.1.8[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub  172.16.1.7
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@172.16.1.7's password: 
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh '172.16.1.7'"
and check to make sure that only the key(s) you wanted were added.C6:
[root@m01 /]# ssh-copy-id -i ~/.ssh/id_rsa.pub  172.16.1.7
root@172.16.1.7's password: 
Now try logging into the machine, with "ssh '172.16.1.7'", and check in:.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.

5、ssh-copy-id:原理
1)拷贝公钥并改名为~/.ssh/authorized_keys

scp -rp ~/.ssh/id_rsa.pub 172.16.1.7:~/.ssh/authorized_keys

2)特别注意

[root@web02 ~]# ls ~/.ssh/ -ld
drwx------ 2 root root 29 422 12:18 /root/.ssh/      #1).ssh要求700
[root@web02 ~]# ls ~/.ssh/ -l
总用量 4
-rw------- 1 root root 390 422 12:18 authorized_keys  #2)文件权限600

3)为什么名字是authorized_keys?

[root@web02 ~]# grep authorized_keys$ /etc/ssh/sshd_config 
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile	.ssh/authorized_keys

免密码登录注意事项。

6、测试远程执行命令:

ssh 172.16.1.7 ifconfig
ssh 172.16.1.8 ifconfig

如果执行过程中不需要密码,并且可以获取到IP,表示成功。

7、写个脚本

[root@m01 ~]# cat /server/scripts/cmd.sh
ssh 172.16.1.7 ifconfig
ssh 172.16.1.8 ifconfig[root@m01 ~]# cat /server/scripts/cmd.sh
for n in 7 8
dossh 172.16.1.$n ifconfig
done# 执行脚本:
sh /server/scripts/cmd.sh

8、开发脚本实现批量管理服务器:

[root@m01 ~]# cat /server/scripts/cmd.sh 
for n in 7 8
doecho "=====172.16.1.$n======"ssh 172.16.1.$n "$1"
done[root@m01 /]# sh view.sh "cat /etc/redhat-release"
-------172.16.1.31----------
CentOS release 6.9 (Final)
-------172.16.1.7----------
CentOS release 6.9 (Final)

9、批量发文件:

scp -P 22 -rp /data root@172.16.1.7:/tmp/
rsync -avz /data -e "ssh -p 22" root@172.16.1.7:/opt

简单批量分发文件脚本

[root@m01 /]# cat fenfa.sh 
for n in 7 8
doecho ----------172.16.1.$n--------scp -P 22 -rp $1 root@172.16.1.$n:$2
done

复杂分发文件脚本:

$1   脚本后面接的第1参数
$2   脚本后面接的第2参数
$#   命令行脚本后面参数的个数
sh cmd.sh oldboy oldgirl
请问$#=2
$?上一个命令是否执行成功,如为0,则成功。
$0 脚本的名字(含路径)。
sh /server/scripts/fenfa_niubility.sh#!/bin/sh
. /etc/init.d/functions
if [ $# -ne 2 ]
thenecho "usage:sh $0 localfile remotedir"exit 1
fifor n in 7 8
doscp -P 22 -rp $1 root@172.16.1.$n:$2 &>/dev/nullif [ $? -eq 0  ]thenaction "172.16.1.$n successful" /bin/trueelseaction "172.16.1.$n failure" /bin/falsefi
done[root@m01 ~]# mkdir -p /data
[root@m01 ~]# ls /data
[root@m01 ~]# cd /data
[root@m01 /data]# touch {1..5}.txt
[root@m01 data]# sh /server/scripts/fenfa_niubility.sh /data /opt
172.16.1.7 successful                                      [  确定  ]
172.16.1.8 successful                                      [  确定  ][root@m01 /data]# sh /server/scripts/cmd.sh "rm -fr /opt/*"
=====172.16.1.7======
=====172.16.1.8======

有个坑,用自己创建的目录和文件测试,如果用etc登录目录,可能会有些文件拷贝不了。

1.14 ssh免密码连接生产应用

1)批量管理分发文件、命令
2)mysql高可用工具MHA,所有节点互信(10节点 两两之间互信)。

1.15 批量分发管理方案

ansible批量管理工具

批量管理工具历史
SSH批量管理是软件加配置实现批量管理:2000-2007年

CFEngine、Puppet、 saltstack(python)、 ansible(python)
07-08年 10-13年 14-17 16-2021 Linux运维班
sina

1)不用装客户端(SSH服务做客户端)
2)ansible批量管理、安装、执行命令、分发文件、状态管理。

课后:
1)web服务
2)项目:多服务综合基础上,搭建m01,实现SSH批量分发文件、批量管理所有,07,08,31,41.

密钥对分发给源和目的,可以做到互信

[root@m01 scripts]# cd ~/.ssh
[root@m01 .ssh]# ll
总用量 12
-rw------- 1 root root 1679 2024-02-27 17:19 id_rsa
-rw-r--r-- 1 root root  390 2024-02-27 17:19 id_rsa.pub
-rw-r--r-- 1 root root  344 2024-02-27 17:20 known_hosts
[root@m01 .ssh]# scp id_rsa 172.16.1.7:~/.ssh/
id_rsa                                                  100% 1679   166.1KB/s   00:00
[root@m01 .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub 172.16.1.61
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '172.16.1.61 (172.16.1.61)' can't be established.
ECDSA key fingerprint is SHA256:FugASp0AiEBJGhKbpj9MDlJIVgot3PfDqKa9TNaLdj4.
ECDSA key fingerprint is MD5:5c:57:46:28:61:1e:7a:86:71:c0:35:4d:e3:55:7d:cf.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@172.16.1.61's password:Number of key(s) added: 1Now try logging into the machine, with:   "ssh '172.16.1.61'"
and check to make sure that only the key(s) you wanted were added.[root@m01 .ssh]# ll
总用量 16
-rw------- 1 root root  390 2024-02-27 17:54 authorized_keys
-rw------- 1 root root 1679 2024-02-27 17:19 id_rsa
-rw-r--r-- 1 root root  390 2024-02-27 17:19 id_rsa.pub
-rw-r--r-- 1 root root  517 2024-02-27 17:54 known_hosts[root@web01 ~]# ssh 172.16.1.7 ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 10.0.0.7  netmask 255.255.255.0  broadcast 10.0.0.255inet6 fe80::ab2a:fb93:6cca:3ecd  prefixlen 64  scopeid 0x20<link>inet6 fe80::a01e:de23:fc19:1f41  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:49:dd:db  txqueuelen 1000  (Ethernet)RX packets 1611  bytes 114569 (111.8 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 2666  bytes 320068 (312.5 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.16.1.7  netmask 255.255.255.0  broadcast 172.16.1.255inet6 fe80::20c:29ff:fe49:dde5  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:49:dd:e5  txqueuelen 1000  (Ethernet)RX packets 386  bytes 64573 (63.0 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 359  bytes 68225 (66.6 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 83  bytes 14496 (14.1 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 83  bytes 14496 (14.1 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

这篇关于Day45-SSH远程连接服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/815100

相关文章

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

Java 连接Sql sever 2008

Java 连接Sql sever 2008 /Sql sever 2008 R2 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestJDBC

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

基于SpringBoot的宠物服务系统+uniapp小程序+LW参考示例

系列文章目录 1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例 3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例 4.基于SSM的高校实验室管理系统+LW参考示例 5.基于SpringBoot的二手数码回收系统+原生微信小程序+LW参考示例 6.基于SSM的民宿预订管理系统+LW参考示例 7.基于

nginx长连接的问题

转自: http://www.360doc.com/content/12/1108/17/1073512_246644318.shtml

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP