一、常见的远程管理工具方式:
|--RDP(remote desktop protocal )协议,windows远程桌面管理(图形界面)
|--telenet CLI界面下远程管理(内容明文传输) 端口号: 23
|--ssh CLI界面下的远程管理(内容加密传输) 端口号: 22
|--RFB (remote frame buffer) 图形化远程管理协议 VNC (Virtual Network Computing)使用的协议。(在linux unix Macos 下的图形界面远程管理工具)
ssh服务端由2部分组成: openssh(提供ssh服务) openssl(提供加密的程序)
二、SSH算法
SSH为了确保信息的安全传输,从连接发起到完成各阶段的各个点SSH协议采用了许多不同类型的数据加密技术,包括可逆的对称加密,非对称加密以及不可逆的哈希散列。
它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持
非对称加密算法
公钥是公开的秘钥,私钥是私有的秘钥!一般都是发送公钥,不会发送私钥!加密和解密使用的不是同一秘钥!公钥加密,私钥解密;私钥加密,公钥解密!
非对称加密算法的基本过程:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
不可逆的哈希(散列)算法
哈希散列算法是一种不可逆算法,除非你知道原始值生成散列对比,否则你永远无法通过散列算出原始值
三、用户怎么知道自己收到的公钥是货真价实的公钥呢?
在服务器发过来公钥时,万一被人替换公钥,怎么辨明真伪呢?第三方认证单位CA,每一把秘钥都要向CA认证单位认证注册!客户端的浏览器在浏览时,会自己向CA 单位确认此证书是否合法注册!
ssh两种验证级别:
第一种级别(基于口令的安全验证)
第二种级别(基于密匙的安全验证)
ssh客户端登陆服务端的过程说明
ssh自带的sftp功能
sftp安全文件传送协议,可以为传输文件提供一种安全的网络的加密方法
SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作
SFTP同样是使用加密传输认证信息和传输的数据
ftp客户端连接
sftp -o Port=22 root@192.168.25.137
put /etc/hosts /tmp
注:上传本地hosts文件到对端tmp目录下
get /etc/hosts /home/omd
注:下载对端hosts文件到本地/home/omd目录下
远程连接默认连接用户的家目录
重点:构建ssh服务器
一、基于两台linux主机,且在同一局域网内:
其中的user是你要远程登录以什么用户身份登录,当然你要用那个用户,就要在那个用户家目录下创建秘钥对和.ssh目录
1.创建秘钥对
ssh-keygen -t rsa 还可以在后面-b指定秘钥的位数,否则默认是2048位
2.客户端自己向服务端发送公钥
ssh-copy-id user@主机ip 把公钥发送到那个用户的家目录下
3.服务端亲自从客户端获取公钥
scp user@主机ip:公钥所在的目录 服务器将要将公钥放的目录
例如:scp root@192.168.1.1:/root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
记住:在服务器端识别找自己的公钥时,找的是authoized_keys这个文件,所以要将复制过来的公钥文件改名为authorized_keys!
再在客户端ssh服务端,注意现在这些操作完了之后只能实现单方向的远程登陆不能实现互相ssh
4.远程登录
ssh user@主机ip
二、windows主机xshell免密登录linux虚拟机
1.Windows主机生成密钥对步骤:
保存公钥到桌面:
这样windows的密钥对就生成好了
2.在linux虚拟机中的操作:
先确保.ssh目录下没有任何的authorized_keys文件,有就删除它
在/root/.ssh/下输入rz
弹出下面这个选择框,选择刚才保存到桌面的这个公钥文件,并打开
文件传输若不成功则说明,要么没在用户家目录下输入rz,要么没有删除原有的authorized_keys
SSH排查问题
1.判断物理链路是否通 ping 192.168.25.130 | 是否同一个网的
ping 本身是icmp协议
2.判断服务是否正常 systemctl status sshd
3.Linux防火墙
firewall-cmd --list-all
4.测试:
ssh root@192.168.40.132
SSH章节小结
1.ssh远程的加密连接协议,相关软件openssh,openssl
2.默认端口22
3.ssh版本协议
4.服务器ssh连接,ftp连接,sshd守护进程,开机启动
5.ssh客户端重要命令:ssh(用户登录&&远程命令),scp,sftp,
6.安全验证方式:口令,密钥 学习原理
7.ssh服务优化:改端口,改监听,no root,no empty,no DNS,
8.ssh密钥对,公钥在服务器端,私钥在客户端
如何防止SSH登录入侵
1.密钥登录,更改端口
2.监听本地内网IP(ListenAddress 192.168.25.*)
修改SSH服务启动文件sshd的几个点
修改 /etc/ssh/sshd_config
UseDNS no 加快响应速度因为在内网环境下
PermitRootLogin no 不运行root用户直接登录
Port 11544 更改访问端口号
ListenAddress 192.168.25.130 只监听内网的IP
Allow User anoncvs 当前环境允许登录的用户
PermitRootLogin no 是否允许root用户登录,一般不允许开