目录
SSH服务
定义
优点
客户端和服务端
SSH服务端服务功能
SSH服务的开启、端口号和配置文件
SSH服务的开启
端口号
配置文件
作用
服务端常见配置
服务配置
登录
方法一
方法二
ssh ip 命令
禁止root登录
修改端口
黑白名单
ssh服务安全管理
使用密钥登录
原理
sftp
scp远程复制
下行复制
上行复制
SSH服务
定义
ssh:是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能(先加密在压缩)
- 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,ssh为建立在应用层和传输层基础上的安全协议
优点
- 数据传输是加密的,可以防止信息泄露
- 数据传输是压缩的,可以提高传输速度
客户端和服务端
客户端:Xshell
服务端:Openssh
- openssh是实现ssh协议的开源软件项目,适用于各种UNIX、Linux操作系统
- cengtos7系统默认已安装openssh相关软件包,并将sshd服务添加为开机自启动
SSH服务端服务功能
- ssh远程连接
- sftp服务
SSH服务的开启、端口号和配置文件
SSH服务的开启
执行“systemctl start sshd”命令即可启动sshd服务
端口号
sshd服务默认使用的是TCP的22端口,安全协议版本sshv2,出来2之外还有1(有漏洞)
配置文件
sshd_config 是针对服务端的配置文件
ssh_config 是针对客户端的配置文件
作用
sshd服务使用SSH协议可以用来进行远程控制,或在计算机之间传送文件、相比较之前用Telnet方式来传输文件要安全很多,因为Telnet使用明文传输,ssh是加密传输
sshd #服务名称
/usr/sbin/sshd #服务端主程序
/etc/ssh/sshd_config #服务端配置文件
/etc/ssh/ssh_config #客户端配置文件
服务端常见配置
Port 22 #端口
ListenAddress ip #监听服务器的ip地址,可以写本地,也可0.0.0.0代表所有
LoginGraceTime 2m #设定登录失败,在切断连接前服务器需等待时间,单位为秒
PermitRootLogin yes #允许root登录
StrictModes yes #检查ssh/文件的所有者、权限等
MaxAuthTries 6 #用来设置最大失败尝试登录次数
MaxSessions 10 #同一个连接最大会话
PubkeyAuthentication yes #基于key验证
PermitEmptyPasswords no #密码验证
PasswordAuthentication yes #基于用户名和密码连接
GatewayPorts no #是否允许远程主机连接本地的转发端口
ClientAliveInterval 10 #设置以秒记得时长,超过该时间没收到客户端的数据会发送“alive”并等待回复,为0表示不发送“alive”仅对SSH-2有效
ClientAliveCountMax 3 #在未收到客户端回应前最多允许发送多少个“alive”消息
UseDNS yes #内网改为no ,禁用反向解析
GSSAPIAuthentication yes #是否用户退出登录后自动销毁用户凭证缓存(仅适用于SSH-2)
MaxStartups #最大允许保持多少个未认证的连接
服务配置
登录
方法一
ssh 远程主机用户名@远程服务器主机名或ip -p port(端口号)
当在一台linux主机上连另一台linux主机时,如当前用户是root,对面也是root登录,可以直接使用ssh ip ; 端口默认,如果端口不是默认的,需要使用 -p 指定端口。
方法二
ssh -l 远程主机用户名 远程服务器主机名或ip -p port
- -l :指定登录名称
- -p :指定登录端口
ssh ip 命令
后面可以直接跟命令,不登录查看相关信息
禁止root登录
[root@mmm ~]# vim /etc/ssh/sshd_config
修改端口
首先确保想改的端口号未被其他进程占用
[root@mmm ~]# vim /etc/ssh/sshd_config
黑白名单
AllowUsers user1 user2@ip(限制主机)
DenyUsers user1 user2
AllowGroups g1 g2
DenyGroups g1 g2
文章来源地址https://www.toymoban.com/news/detail-480420.html
[root@yyy ~]# useradd aa
[root@yyy ~]# echo '123'|passwd --stdin aa
[root@yyy ~]# useradd bb
[root@yyy ~]# echo '123' |passwd --stdin bb
[root@yyy ~]# useradd cc
[root@yyy ~]# echo '123' |passwd --stdin cc
ssh服务安全管理
- 1、不使用默认端口
- 2、禁止使用protocol version 1 (协议版本1)
- 3、限制可登录用户(白名单)
- 4、设定空闲会话超时时间
- 5、利用防火墙设置ssh访问策略
- 6、仅监听特定的ip地址 、公网 、内网
- 7、设置密码复杂度,可以用“tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12| xargs”生成随机密码
- 8、使用密钥认证
- 9、禁止使用空密码
- 10、禁止root用户登录
- 11、限制ssh访问频率
- 12、分析日志分离
使用密钥登录
原理
1、首先在客户端生成一对密钥(ssh-keygen)
2、并将客户端的公钥ssh-copy-id 拷贝到服务端
3、当客户端再次发送一个连接请求,包括ip、用户名
4、服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应ip和用户,就会随机生成一个字符串,例如:ky
5、服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端
6、得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
7、服务端接收到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录
sftp
通过sftp可以利用ssh安全连接与远程主机上传、下载文件,采用与ftp类似的登录过程和交互式环境,便于目录资源管理
由于使用加密/解密技术,所以传输效率比普通的ftp要低,但安全性更高
scp远程复制
下行复制
从对面主机下载内容到本地
上行复制
上传本地的内容到对面主机
文章来源:https://www.toymoban.com/news/detail-480420.html
到了这里,关于SSH远程登陆协议和TCP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!