千家信息网

Linux系统SSH服务详解

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,简介:SSH 为 secure shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程
千家信息网最后更新 2025年02月05日Linux系统SSH服务详解

简介:

SSH 为 secure shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台-包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

基本功能:

1.首先我们开启两台Linux系统,一台作为服务端,一台作为客户端。我们先用vim编辑器对ssh服务端配置文件"/etc/ssh/sshd_config"进行编辑。


Port 22                                          监听端口,默认监听22端口  #AddressFamily any                     IPV4和IPV6协议家族用哪个,any表示二者均有#ListenAddress 0.0.0.0                 指明监控的地址,0.0.0.0表示本机的所有地址 #ListenAddress ::                           指明监听的IPV6的所有地址格式

#LoginGraceTime 2m                 会话时间,默认2分钟则自动断开连接#PermitRootLogin yes                是否允许管理员直接登录,'yes'表示允许#StrictModes yes                         是否让sshd去检查用户主目录或相关文件的权限数据MaxAuthTries 6                           最大认证尝试次数,最多可以尝试6次输入密码。#MaxSessions 10                        允许的最大会话数(将"#"删除即可开启相应功能)

2.配置完毕记得重启服务才会生效,我们用客户端尝试连接一下服务端。


我们直接输入用来的登录的用户root(注意是服务端用户)和服务端IP地址即可,然后输入用户密码即可登录。我之前登陆过,如果没有登陆过,系统会问你是否想连接,你只需输入"yes"即可。

如果客户端的用户名和服务端的用户名相同,登录时可以省略用户名。

SSH服务的默认端口是22,如果你不设置端口的话,登录请求会自动送到远程主机的22端口。如果我们在配置文件里修改了端口号,我们可以使用 -p 选项来指定端口号。例如端口改为了123:

3.我们知道root用户是系统的管理员,如果别人能够随意登录肯定是不安全的。所以我们可以通过修改配置文件,不让别人通过root用户登录。修改完记得重启服务。



我们再次用root用户登录,输入密码后显示权限拒绝,而换成zhangsan用户又可以登录了。

4.虽然我们限制了使用root用户登录,但是当我们用zhangsan用户登录了,用"su"命令任然可以切换到root用户。

所以我们可以开启"su"命令的PAM安全认证功能,我们只要将允许用"su"命令的用户添加到"wheel"组即可。

可以看到用户"jiang"在"wheel"组中,用户"zhangsan"不在。我们再用"zhangsan"用户切换root用户已经显示权限拒绝,而在"wheel"组用户"jiang"任然可以切换root用户。

5.前面我将最大认证尝试次数6次数开启了,我们可以测试一下是否成功。
可以看到当我们尝试了6次,就自动被断开连接了。但是我们得用"-o NumberOfPasswordPrompts=8"选项才能测试成功,如果直接输入,还是默认3次就会断开连接。

6.我们还可以通过在服务端配置文件里添加黑白名单来限制登录的用户和IP地址。

黑白名单不能同时存在,一般企业中多用白名单,下面以白名单为例演示。
首先我们在配置文件中添加白名单,限制zhangsan用户只能在ip为192.168.52.132的主机上进行登录,lisi用户可以在任意主机上进行登录。配置完成要重启服务。


我们在ip为192.168.52.132的主机上登录时,可以看到由于设置了白名单,用户"jiang"不在名单里所有已经不能登录了,而zhangsan与lisi用户任然可以登录。


我们在ip为192.168.52.128的主机上登录时,只有lisi用户可以登录,zhangsan用户不能登录,因为我们限制了zhangsan用户只能在ip为192.168.52.132的主机上进行登录。

scp命令与sftp命令

1.我们将之前设置的白名单删除,允许root用户登录改为"yes",并重启服务。

2.首先在client主机的"/opt/"目录,新建一个文件"ssh_client.txt"和一个目录"ssh",然后用scp命令将它们都复制到server主机的"/opt/"目录下。


3.再在client主机的"/opt/"目录下,创建一个文件"test01",然后在"server"主机用scp命令将文件复制过来。


4.我们将之前在两台主机"/opt/"目录下新建的目录和文件删除,分别在server与client的"/opt/"目录下创建两个文件demo01、demo02。

5.我们在client主机用sftp命令也可以登录server主机进行文件的上传和下载。上传用"put"命令,下载用"get"命令,同时我们还可以用cd命令进行目录的切换。

6.可以看到我们可以用cd命令随意切换目录,这样很不安全,所以我们可以通过对ssh服务端配置文件进行修改,将sftp命令连接后限制在我们指定的目录里。

首先用vim编辑器对文件"/etc/ssh/sshd_config"进行编辑,将"Subsystem sftp /usr/libexec/openssh/sftp-server"注释掉。然后添加下面的命令:

Subsystem  sftp  internal-sftpMatch User zhangsanChrootDirectory /home/zhangsanX11Forwarding noForceCommand internal-sftpAllowTcpForwarding no(配置完别忘了重启服务)

然后我们进入"/home/"目录,将我们指定的目录"zhangsan"的权限设为"755",属主、属组均改为root。

我们再"/home/zhangsan/"目录下,新建5个空文件。

我们再次用client主机,通过sftp连接server主机,可以看到我们直接就登录到"zhangsan/目"录中了。当我们想切换到别的目录时,都不能成功。

密钥对登录

1.将之前的限制sftp登录切换目录的配置修改回来,开启密钥对登录功能(删除#即可),并重启服务。



2.首先用"ssh-keygen -t ecdsa"命令生成密钥对,将密钥文件存在"/home/zhangsan/.ssh/"目录中。

3.用命令"ssh-copy-id -i id_ecdsa.pub zhangsan@192.168.52.131"将目录"/home/zhangsan/.ssh/"下的公钥文件"id_ecdsa.pub"导入到server主机。

4.当我们再次用ssh命令登录时,这是只要输入之前的密钥即可。

5.但是我们每次登录都得输入密钥会很麻烦,此时我们只要用bash代理,添加密钥即可,我们下次登录就不用输入密钥了。

TCP Wrappers策略

控制策略的配置文件:

  • /etc/hosts.allow(白名单文件)
  • /etc/hosts.deny(黑名单文件)

策略的应用顺序:

  • 先检查hosts.allow文件,找到匹配则直接允许访问,不再检查hosts.deny文件;
  • 若hosts.allow文件中没有,再检测hosts.deny文件,找到则拒绝访问;
  • 若两个文件中均无匹配策略,则默认允许访问。

1.先用vim编辑器对文件"/etc/hosts.allow"进行编辑,添加一个白名单ip192.168.52.132。


2.再用vim编辑器对文件"/etc/hosts.deny"进行编辑,将所有ip设为黑名单。


3.下面我们用ip为192.168.52.132的主机client和ip为192.168.52.128的主机client02分别进行登录,只有白名单里的client主机可以登录。

4.将白名单中的client主机ip删除,加入到黑名单中,再用client主机去登录,结果不能登录。


登录 用户 文件 主机 目录 命令 服务 名单 配置 输入 密钥 切换 端口 限制 安全 地址 尝试 系统 功能 客户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小蚂蚁服务器是哪个厂生产的 我的世界服务器地址1.0 代理即时通讯软件开发 辽宁公安厅网络安全保卫总队 南昌软件开发价格 office软件开发流程 承载网络技术支撑工程师题库 两个线程处理同一个数据库 大数据下的网络安全实践 路由器主dns服务器选什么 数据库安全机制有哪些 超星查重是什么数据库 长沙测绘软件开发招聘信息 在Pk体系中数据库可以选择 队列怎么存入数据库 中国网络安全综合立法是什么 校园里服务器连接密码 金山区企业软件开发不二之选 软件开发多少钱个月 中国自主互联网服务器概念股 2008终端服务器管理模式 怎么看电脑上是否安装数据库 香港不实名服务器哪家比较好 软件开发中uat试验是啥 数据库字段的命令规则 仙桃整体计算机软件开发 二十四小时无法连接服务器 ncc国家网络安全人才创新基地 四川服务器阵列卡品牌 软件开发行业研发费用比例
0