SSHD远程管理服务
一、远程管理服务知识介绍
1. SSH服务介绍
SSH是Secure Shell Protocol的简写,由 IETF 网络工作小组(Network Working Group)制定。在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输,确保了传递的数据安全。
SSH是专为远程登录会话和其他网络服务提供的安全性协议。利用SSH协议可以有效的防止远程管理过程中的信息泄露问题。
2. 在默认状态下,SSH服务主要提供两个服务功能:
a 一是提供类似telnet远程联机服务器的服务,即上面提到的SSH服务。
b 另一个是类似FTP服务的sftp-server,借助SSH协议来传输数据的,提供更安全的SFTP服务(vsftp,proftp)。
3. SSH连接排错思路
a. 检查链路是否通畅---ping(icmp)/tracert/traceroute
在SSH客户端进行排查
ping 服务器IP地址,确认主机链路状态
tracert -d 服务器IP地址,进行路由跟踪,确认链路状态,-d参数禁止反向DNS解析
b. 检查链路是否阻断---将防火墙功能关闭
c. 检查服务是否开启---ss/netstat -lntup(服务端检查) /telnet/nmap/nc(客户端检查)
telnet 服务器IP地址 SSH服务端口号
Nmap 服务器IP地址 -p SSH服务端口号
二、远程管理服务的对比
比较常见的远程管理服务主要有以下两种SSH和Telnet
1. ssh命令使用方法
ssh远程连接测试
2. Telnet命令使用方法
a. telnet命令安装软件包:yum install telnet-server telnet
b. 编辑telnet配置文件:
c. 开启telnet服务:
d. telnet命令使用方法
e. telnet远程连接测试
三、远程管理服务工具详解
SSH服务由服务端软件OpenSSH和客户端(常见的有SSH(linux)/SecureCRT/Putty/Xshell)组成,SSH服务默认使用22端口提供服务,它有两个不兼容的SSH协议版本,分别是1.x和2.x.
服务器端上SSH相关软件
SSH服务器端软件包列表信息
SSH客户端软件包列表信息
1. 加密技术分为v1和v2两个版本
SSH加密技术就是将人类可以看得懂的数据,通过一些特殊的程序算法变成杂乱的无意义的信息,然后通过网络进行传输,而到了目的地后,再通过对应的解密算法把传过来的加密数据信息解密成加密前的可读的正常数据。
网络上的数据包加密技术一般是通过所谓的一对公钥与私钥组合成的秘钥对进行加密与解密操作。
ssh v1版本不会经常更换锁头和钥匙,因此会有安全隐患
ssh v2版本会经常更换锁头和钥匙,因此提高了远程连接安全性
2. SSH的工作机制
本地的SSH客户端先发送一个连接请求到远程SSH服务器端,服务器端检查请求连接的客户端发送的数据包(含用户、密码)和IP地址,如果确认合法,就会发送密钥给SSH客户端,此时本地客户端再将密钥发回给服务器端,自此连接建立。
ssh连接登录过程
①. ssh客户端发出连接请求 >/root/.ssh/known_hosts
②. ssh服务端会发出确认信息,询问客户端是否真的要连接
③. ssh客户端输入完成yes,会等到一个公钥信息 cat /root/.ssh/known_hosts
④. ssh服务端将公钥信息发送给ssh客户端
⑤. ssh客户端利用密码进行登录
四、SSH服务认证类型
从SSH客户端来看,SSH服务主要提供两种安全登录模式,具体如下:
1. 基于口令的安全验证
只要知道服务器的SSH连接账号和口令,就可以通过SSH客户端登录到这台远程主机。
①. ssh客户端向服务端发送连接请求
②. ssh服务端向客户端发送公钥
③. ssh客户端接收服务端公钥,另客户端会随机产生一串私钥,随机密钥,每次连接都不同,用私钥验证公钥
④. ssh客户端用服务端公钥加密登录口令,发送给服务端
⑤. ssh服务端解密并验证登录口令,验证通过
⑥. ssh客户端可以和服务端建立基于口令连接登录
2. 基于密钥的安全验证
该种方式主要依靠密钥,事先必须建立一个密钥对,然后把公钥放在需要访问的目标服务器上,把私钥放在SSH的客户端服务器上。
1)基于密钥方式实现远程登录
①. ssh客户端服务器上创建密钥对信息(公钥 私钥)
②. ssh客户端服务器上将公钥发送给服务端服务器
③. ssh客户端服务器向服务端服务器发送连接请求
④. ssh服务端服务器向客户端服务器发送公钥质询
⑤. ssh客户端服务器处理公钥质询请求,将公钥质询结果发送给服务器端
⑥. ssh服务端服务器接收公钥质询响应信息,从而确认认证成功
⑦. ssh客户端服务端可以和服务端服务器建立基于密钥连接登录
2)基于密钥登录方式部署流程
第一个里程:在管理主机上创建密钥对信息
第二个里程:将管理主机上公钥信息发送给被管理主机
第三个里程:进行远程管理测试(基于密钥的方式进行远程管理)
五、SSH配置文件参数说明
修改SSH服务运行参数是通过修改配置文件/etc/ssh/sshd_config实现
1. SSH服务配置文件重要参数说明
Port 22 <- 修改ssh服务端口号信息
ListenAddress 0.0.0.0 <- 主要作用提升网络连接安全性,PS:监听地址只能配置为服务器网卡上拥有的地址
PermitRootLogin no <- 是否允许root用户远程登录
PermitEmptyPasswords no <- 是否允许空密码
UseDNS no <- 是否进行DNS反向解析(提升ssh远程连接效率)
GSSAPIAuthentication no <- 是否进行远程GSSAPI认证(提升ssh远程连接效率)
2. SSH服务监听概念
注:修改了SSH服务器端的配置文件信息后,重启SSHD服务是其修改的配置生效。
六、SSH服务远程命令
1. SSH服务远程命令——scp命令
scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令
scp远程复制是全量加密拷贝。
scp可以把数据从一台机器推送到另一台机器,也可以从其他机器把数据拉取到执行命令的机器上
scp语法:scp [可选参数] file_source file_target
参数说明:
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-P port:注意是大写的P, port是指定数据传输用到的端口号
2. SSH服务远程命令——sftp命令
1)window客户端与Linux服务器之间传输数据工具主要有以下几个:
rz,sz(lrzsz) 运维人员常用
WinSCP 基于SFTP
XFTP xshell windows工具
SFTP 基于SSH,加密传输,Linux命令
samba,HTTP,FTP,NFS 更多服务工具
2)sftp命令用法
Linux下连接SFTP服务命令为:sftp -o Port=22 用户@主机ip地址
上传put 客户端本地路径
下载get 服务端内容
连接到的远端家目录为默认目录
sftp常用操作命令总结
bye Quit sftp <-- 表示退出sftp传输模式
cd path Change remote directory to ‘path‘ <-- 改变远程目录信息
pwd Display remote working directory <-- 显示远程主机当前目录信息
lcd path Change local directory to ‘path‘ <-- 改变本地目录路径信息
lpwd Print local working directory <-- 输出本地目录路径信息
get [-P] remote-path [local-path] <-- 下载文件命令
put [-P] local-path [remote-path] <-- 上传文件命令
3)测试
七、SSH远程登录管理服务知识点总结