远程管理服务
远程管理服务
实现远程管理方法
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只