远程管理服务

阿帅 / 2024-11-09 / 原文

远程管理服务

实现远程管理方法

1)利用ssh服务  22  加密传输  默认允许root用户登录
2)利用Telnet服务 23 名文传输   默认不允许root用户远程登录

ssh作用说明

1)实现远程传输数据
2)实现远程传输数据

ssh服务安装服务部署

	openssh-clients(软件包)
		/etc/ssh/ssh_config  --ssh客户端的配置文件(默认)
		/usr/bin/scp			--远程传输数据
		/usr/bin/sftp			--远程传输数据
		/usr/bin/slogin		--远程登录命令
		/usr/bin/ssh			--远程登录命令
		/usr/bin/ssh-copy-id	--实现密钥分发
	openssh-server(服务)
		/etc/ssh/sshd_config	--ssh服务的配置文件
		/etc/pam.d/sshd		--用于启动ssh服务进程
补充:在系统中个ssh相关的进程,默认有两个
	/uer/sbin/sshd -D  用于客户端是否能够远程连接服务主机
	sshd: root@pts/1  用于确认已经连接上的客户端,可以保持会话连接

总结:整个Linux系统中最重要的两个和数据加密安全相关的软件
openssh openssl

echo "踢掉你" >/dev/pts/2

利用ssh建立远程连接的过程原理

1、执行远程连接命令
		ssh 用户信息@10.0.0.41 -p 22
2、需要输入确认信息  确认是否连接到主机
3、确认输入yes  服务端会将公钥发送给客户端
	服务端公钥文件信息:
	/etc/ssh/ssh_host_ecdsa_key.pub
4、客户端会接受公钥信息,保存好公钥信息
	客户端会保存公钥文件
	~/.ssh/known_hosts
5、需要输入密码信息
6、登录成功

利用ssh建立远程连接登录的方式

	1)基于口令的方式进项远程连接(安全吗?)
		password :
	容易被破解
	2)基于秘钥的方式进行远程连接
		什么是密钥方式(私钥  公钥):最终实现远程连接
流程:
1、管理端第一次连接服务端基于口令
	管理端会将产生的公钥发送给服务端
2、管理端再次访问服务端的时候基于密钥
	服务端接收到连接请求,将保存的公钥,发送给管理端,进行匹配
	管理端会用私钥对公钥进行解锁,解锁完成之后,会将结果告知服务端
	确认应答无误,建立网络连接

实现基于密钥的方式建立连接登录

管理端创建步骤

   1、在管理端  创建公钥 私钥(创建密钥对)
		ssh-keygen -t dsa   :创建密钥对(keygen:生成)
		  Enter file in which to save the key (/root/.ssh/id_dsa):   --- 确认私钥保存在哪    
  Enter passphrase (empty for no passphrase):             --- 是否给私钥设置密码
	2、分发公钥
	#ssh-copy-id -i 需要传输的公钥路径信息  用户信息@IP地址信息
	ssh-copy-id -i ~/.ssh/id_dsa.pub 172.16.1.41
3、进行远程连接测试
	不需要输入密码就可以进行远程连接
	不需要输入密码就可以进行远程操作
	ssh 172.16.1.41 ip a

被管理操作步骤

	1、接受分发的公钥信息进行保存
		~/.ssh/id_dsa.pub
	2、将公钥信息进行重命名
		authorized_keys  (公钥保存的默认文件,便于被ssh识别加载)
		/etc/ssh/sshd_config (公钥的配置文件)
3、修改分发后的公钥权限
			600

批量分发公钥

利用脚本

1)需要解决每次连接输入yes  
	加一个参数  -o stricthostkeychecking=no   不要让我确认,我都同意
2)需要解决密码输入问题
	yum install -y sshpass
	借助一个sshpass    sshpass  -p  123456
3)被管理端如果端口号不是22端口  如何分发公钥
	加一个参数  -p2313
解决问题参数信息整合
sshpass  -p  123456	ssh-copy-id  -i  分发的公钥信息  ip地址  -o StrictHostKeyChecking=no
 利用for循环实现对台主机分发公钥

免交互方式创建密钥方法

	1)ssh-keygen -t dsa -f /root/.ssh/id_dsa -N '' >/dev/null 2>&1 -q
	2)ssh-keygen -t dsa -f /root/.ssh/id_dsa -P “” >/dev/null 2>&1 -q
		-f:表示指定将密钥文件创建在什么路径下
		-P/-N :表示指定密钥文件的密码信息是什么,此处设为空
		-q:表示创建的密钥的结果信息不用输出出来,等于追加到空

SSH服务端配置文件如何进行设置

    vim /etc/ssh/sshd_config  服务端配置文件
        /etc/ssh/ssh_config   客户端配置文件
	配置文件改写完,重启服务	

配置参数说明:

#Port 22      				--- 修改服务端的默认端口号
#ListenAddress 0.0.0.0 --- 指定监听地址信息 指定只能利用指定网卡建立远程连接
	                结论:所有服务配置监听地址时,只能配置本地网卡上有的地址  
#PermitRootLogin yes       --- 指定是否允许root用户远程登录 默认是允许的
#PermitEmptyPasswords no   --- 指定是否允许采用空密码方式登录,默认是不允许的GSSAPIAuthentication yes    --- 一种连接认证机制  启动认证机制会使连接变得缓慢 
#UseDNS yes                --- 实现DNS反向解析   反向解析过程会使连接变得缓慢
                 ssh服务  172.16.1.61  --- 172.16.1.7 (61IP地址==名称信息)	

参数

-t:创建的类型
rsa dsa :主要是用的算法不同
-p:指定端口号
-o:-o StrictHostKeyChecking=no (不需要确认信息)
sshpass -p xxx :免交互方式分发密钥

ssh 的配置文件 /etc/ssh/sshd_config

修改ssh服务的运行参数,是通过修改配置文件实现的
UsePAM yes

ssh防侵犯案例

1)用密钥登录,不用密码登录
2)牤牛阵法,解决ssh安全问题
	a、防火墙封闭ssh,指定源ip限制(局域网,信任公网)
	b、开启ssh只