目录
一、SSH远程管理基础
1、ssh协议
ssh协议是基于C/S机构的安全通道协议,通信数据进行加密处理,用于远程管理。
ssh的服务名称为sshd。
默认端口号:tcp的22端口
2、ssh原理
使用公钥传输
第一步:客户端请求连接,服务端返回一个公钥(专门给别人用的)和一个会话ID给客户端
第二步:客户端把服务端的公钥和自己的公钥加密发送给客户端
第三步:客户端和服务端都有对方的公钥和自己的公钥私钥
3、配置文件解析
服务端配置文件:/etc/ssh/sshd_conf
客户端配置文件:/etc/ssh/ssh_conf,一般不修改
服务端配置文件解析:
#Port 22 #默认使用22端口
#AddressFamily any #默认任何地址可访问
#ListenAddress 0.0.0.0 #监听所有地址的ipv4地址
#ListenAddress :: #监听的ipv6地址
# Logging #日志模块内容
#SyslogFacility AUTH
SyslogFacility AUTHPRIV #默认日志位置输出到rsyslog服务的AUTHPRIV中,/var/log/message下
# Authentication: #身份验证模块
#LoginGraceTime 2m #默认验证用户登录失败后等待时间为2秒
#PermitRootLogin yes #默认允许使用root账户登录
#MaxAuthTries 6 #默认最多可以尝试连接失败6次
#MaxSessions 10 #默认最大可连接10个会话
#PubkeyAuthentication yes #基于key验证默认为开启
#AllowUsers user1,user2@ip #白名单允许登录用户user1,用户为user2的且限制ip
4、登录方法
①ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port 。
例如root默认用户则可以不写,port默认22也可不写。
ssh 192.168.30.11然后输入密码即可。
5、使用ssh协议传输的命令
①scp命令:将本机文件直接传输到对面服务器
使用格式:scp 本地文件 对面ip地址:对面接收路径
例如:scp /data/a.txt 192.168.30.12:/mnt
②sftp命令:上传或下载文件
使用格式:scp 对面ip (进去后在对面的家目录)
可以使用get下载,put上传到对面机器的家目录
二、免密连接的实现
1、免密连接原理
第一步:手动添加客户端的公钥到服务端
第二步:服务端收到客户端的公钥后使用客户端公钥加密一串随机字符串发送给客户端
第三步:客户端收到服务端发送的加密的随机字符串使用自己的私钥解密返回给服务端进行验证
第四步:服务端验证客户端发送来的随机字符串一致则同意建立连接
2、免密实现环境准备
首先准备2台可以互相通信的虚拟机,且关闭防火墙和selinux。
2台服务器都执行
systemctl stop firewalld #关闭防火墙
setenforce 0 #关闭selinux
3、在客户端生成秘钥文件
4、将秘钥发送给服务器
秘钥的默认位置为:/root/.ssh/