尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

OpenSSH 服务管理

发布时间:2026/11/4 14:30:45

资讯中心
01
ARTICLE

OpenSSH 服务管理

OpenSSH 服务管理
文章目录OpenSSH 服务管理OpenSSH 服务介绍SSH 协议概述SSH 建立连接的过程加密类型双向加密过程使用 ssh 访问远端CLIssh 工具演示ssh工具配置文件SSH 密钥认证配置配置过程排故SSH 服务安全加固配置文件基础说明加固配置项1. 禁止 root 密码登录2. 禁止 root 登录3. 禁止密码登录4. 只允许特定用户登录OpenSSH 服务管理OpenSSH 服务介绍SSH 协议概述SSHSecure Shell是一种工作在应用层的安全远程协议专为远程登录、文件传输等网络服务提供加密保护。传统的 Telnet、FTP、rlogin 等工具均以明文传输数据存在极高的信息泄露风险OpenSSH 作为其主流实现通过对传输数据全程加密替代了这些不安全的传统服务成为当前远程管理服务器的标准工具。SSH 建立连接的过程SSH 连接的建立分为 5 个核心阶段协议版本协商阶段目前主流使用 SSH2 版本相比 SSH1 修复了大量安全漏洞。加密算法协商阶段客户端与服务器根据双方支持的加密、哈希算法进行协商确定本次会话使用的算法组合。双向身份认证阶段服务器和客户端分别向对方验证身份是 SSH 安全的核心环节。会话请求阶段客户端向服务器发送会话请求如数据压缩、伪终端申请、端口转发、认证代理等。交互会话阶段会话建立完成后双方可进行 Shell 命令交互、文件传输等数据通信。加密类型对称加密加密和解密都使用一个钥匙。确保数据的完整性、速度快。非对称加密一对钥匙。公钥用来加密数据。私钥用来解密数据。确保数据的安全性。SSH 协议结合了对称加密与非对称加密的优势两者特性对比见下表对比项对称加密非对称加密核心原理加密和解密使用同一个密钥采用一对公钥 / 私钥公钥加密、私钥解密典型场景会话数据加密SSH 会话建立后使用密钥交换、身份认证如 TLS 握手、公钥登录优点加密效率高、计算速度快适合大量数据传输无需提前分发密钥安全性强支持身份验证缺点密钥分发困难一旦泄露则数据完全暴露计算效率较低密钥长度更长占用更多资源用例数据加密传输、PII 数据脱敏身份认证、密钥交换、数字签名双向加密过程SSH协议是基于非对称加密方法的服务器和客户端都会生成自己的公钥和私钥。公钥用来加密数据。私钥用来解密数据。双向加密过程服务器创建密钥对。远程服务器会在/etc/ssh目录下生成一个名为多个密钥对例如ecdsa类型的密钥对ssh_host_ecdsa_key.pub 公钥和 ssh_host_ecdsa_key 私钥。之后每回启动sshd服务的时候系统会自动在此路径下查找公钥。客户端请求连接。服务器接到请求后把公钥传给客户端使用。客户端记录服务器公钥并计算自己的公私钥。客户端将服务器传来的公钥记录在**~/.ssh/known_hosts** 中若是已经记录有该服务器公钥则比对是否一致一致后就计算客户端自己的公私钥。bash [laomaclient ~ 10:16:36]$ ssh server The authenticity of host ‘server (10.1.8.10)’ can’t be established. ECDSA key fingerprint is SHA256:KTP3/4VydNwCIpOUzpd0C5IhvjfirHy1U8IHIt8ZdM. ECDSA key fingerprint is MD5:33:24:9b:48:f7:d2:c5:73:3e:40:d0:38:0e:a7:da:7c. Are you sure you want to continue connecting (yes/no)?# 作用 # 1. 接收server提供的公钥使用这个公钥加密数据发送给对方。 # 2. 校验对方的公钥是否正确。如果本地以及提前存储过对方的公钥了 客户端使用服务器的公钥加密自己的公钥并发送给服务器。服务器端拥有客户端公钥自己私钥客户端拥有服务器公钥自己私钥组成了非对称加密系统。双向加解密。服务器发送数据用客户端公钥加密客户端收到数据后用自己私钥解密。客户端发送数据用服务器公钥加密服务器收到数据后用自己私钥解密。使用 ssh 访问远端CLIssh 工具演示方式一只指定IP或主机名# 通过IP地址[myzclient ~10:38:08]$ssh10.1.8.10 myz10.1.8.10s password: Last login: Thu Jul 23 10:34:15 2026 from client.myz.cloud [myzserver ~ 10:38:35]$ # 通过主机名称 [myzclient ~ 10:17:19]$ ssh server The authenticity of host server(10.1.8.10) cant be established. ECDSA key fingerprint is SHA256:TBjfYNKltjlgh78oZe2XmxAhxd0PGRA8axQzqSRawM. ECDSA key fingerprint is MD5:0a:95:db:0d:da:7f:a4:a4:89:23:a8:60:e9:74:e5:ae. Are you sure you want tocontinueconnecting(yes/no)?yesWarning: Permanently addedserver,10.1.8.10(ECDSA)to the list of known hosts. myzservers password: Last failed login: Thu Jul2310:17:37 CST2026from client.myz.cloud on ssh:notty There was1failed login attempt since the last successful login. Last login: Thu Jul2310:16:332026from10.1.8.1方式二额外指定用户名# 指定root用户登录[myzclient ~10:34:51]$sshrootserver rootservers password: Last login: Thu Jul 23 10:34:40 2026 from client.myz.cloud # 或者 [myzclient ~ 10:34:18]$ ssh -l root server rootservers password: Last failed login: Thu Jul2310:34:38 CST2026from client.myz.cloud on ssh:notty There was1failed login attempt since the last successful login. Last login: Wed Jul2215:53:422026方式三额外指定命令# 同时指定用户和命令[myzserver ~10:38:50]$sshmyzserverhostnameThe authenticity ofhostserver (10.1.8.10)cant be established. ECDSA key fingerprint is SHA256:TBjfYNKltjlgh78oZe2XmxAhxd0PGRA8axQzqSRawM. ECDSA key fingerprint is MD5:0a:95:db:0d:da:7f:a4:a4:89:23:a8:60:e9:74:e5:ae. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added server,10.1.8.10 (ECDSA) to the list of known hosts. myzservers password: server.myz.cloud# shell提示符仍然是本机。[myzserver ~10:39:17]$[myzclient ~10:35:07]$sshrootserverhostname;idrootservers password: server.myz.clouduid0(root)gid0(root)groups0(root)contextunconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023ssh工具配置文件参考SSH_CONFIG(5)。[rootclient ~]# man ssh_config~/.ssh/config用户自己的配置优先级高于全局配置。文件权限不得高于644。/etc/ssh/ssh_config全局配置应用于所有用户。示例[myzclient ~]$mkdir.ssh[myzclient ~10:53:24]$chmod700.ssh[myzclient ~10:53:37]$vim~/.ssh/config Host * StrictHostKeyChecking no User root PreferredAuthentications password[myzclient ~10:54:37]$chmod600.ssh/config# 清空其他主机秘钥[myzclient ~10:54:48]$.ssh/known_hosts# 再次登录不会提示主机key是否校验验证用户也是root[myzclient ~]$sshserver Warning: Permanently addedserver,10.1.8.10(ECDSA)to the list of known hosts. rootservers password:参数说明Host*匹配所有目标服务器。StrictHostKeyChecking no连接目标服务器不校验主机key直接接受。User root连接目标服务器默认使用laoma账户。PreferredAuthentications password连接目标服务器使用密码认证。IdentityFile指定私钥位置。配置文件权限建议设置为只能用户自己读写。[myzclient ~]$sshserver Bad owner or permissions on /home/myz/.ssh/config[myzclient ~11:34:21]$chmod600.ssh/config[myzclient ~11:34:30]$sshserver rootservers password:SSH 密钥认证配置使用密钥登录避免输入密码更安全。配置过程# 客户端生成密钥对[myzclient ~11:15:29]$ ssh-keygen Generating public/private rsa key pair.# 私钥保存位置Enterfileinwhichto save the key(/home/laoma/.ssh/id_rsa):回车# 私钥加密密码回车表示不加密Enter passphrase(emptyforno passphrase):回车# 再次回车Enter same passphrase again:回车Your identification has been savedin/home/myz/.ssh/id_rsa. Your public key has been savedin/home/myz/.ssh/id_rsa.pub. The key fingerprint is: SHA256:MtOAidL9RsXIP8zp2kWCgkuwTc6rJ3pPMiEFoQFDuI myzclient.myz.cloud The keys randomart image is: ---[RSA 2048]---- |o. . o. | |Bo.o oo.. | |oEo. o . | |.o* .o.oB . | |...o .*.S | |.oo . . . | |o . o . | |oo o . . | | | ----[SHA256]----- # 查看生成的文件 [myzclient ~ 11:16:21]$ ls .ssh config id_rsa id_rsa.pub known_hosts # 将公钥推动给目标服务器上的目标用户 [myzclient ~ 11:16:33]$ ssh-copy-id myzserver /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: /home/myz/.ssh/id_rsa.pub /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys myzservers password: Number of key(s)added:1Now try logging into the machine, with:ssh myzserverand check tomakesure that only the key(s)you wanted were added.# 验证[myzclient ~11:22:09]$sshmyzserverhostnameserver.myz.cloud# 推送公钥相当于# 将公钥内容保存到目标服务器上目标用户家目录下.ssh/authorized_keys中[myzclient ~11:22:24]$cat.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCy9QFLLojvQ1gqAZOcjJDW3E9dXLVu09vwUYE7YqHjuB3RbStganGnUMKoj34FfFCtpDJjcILgTwIhvaqMIlUkD2Vh8B3134phxOO/Ycix4nCqlbZIFzmy6KX7OAfVQ4tTlxy8NdItOQX5jqtNkCJ050PiAmo/3Gd4Gdl5ajRRdzkpWz0oo7Kvce3m8tWSvgeQEoCUxUD/lx3X48veyP0wjzLcFIzWR7JxnGV/SKQjWsN7Z/xP7qFWB/aO0H4iscLENSBOkaJ2hOBemNF4I5fO49TE9lDPVLnD/bgio0/lddEP725hzZpB7jwrjRTrzfZ42IhDaELWcUJt9 myzclient.myz.cloud# 在server端查看[myzserver ~11:27:52]$cat.ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCy9QFLLojvQ1gqAZOcjJDW3E9dXLVu09vwUYE7YqHjuB3RbStganGnUMKoj34FfFCtpDJjcILgTwIhvaqMIlUkD2Vh8B3134phxOO/Ycix4nCqlbZIFzmy6KX7OAfVQ4tTlxy8NdItOQX5jqtNkCJ050PiAmo/3Gd4Gdl5ajRRdzkpWz0oo7Kvce3m8tWSvgeQEoCUxUD/lx3X48veyP0wjzLcFIzWR7JxnGV/SKQjWsN7Z/xP7qFWB/aO0H4iscLENSBOkaJ2hOBemNF4I5fO49TE9lDPVLnD/bgio0/lddEP725hzZpB7jwrjRTrzfZ42IhDaELWcUJt9 myzclient.myz.cloud# 推给目标主机root用户[rootserver ~]# mkdir -m 700 .ssh[rootserver ~]# cp ~myz/.ssh/authorized_keys .ssh# 客户端验证[myzclient ~11:29:26]$sshrootserverhostnameserver.myz.cloud以非交互方式生成密钥对[myzclient ~]$ ssh-keygen-trsa-N-fid_rsa_new[myzclient ~11:30:15]$ls*new* id_rsa_new id_rsa_new.pub其他选项# -i 指定私钥位置[myzclient ~11:35:43]$mv.ssh/id_rsa /tmp[myzclient ~11:35:53]$ssh-i/tmp/id_rsa rootserverhostnameserver.myz.cloud# 如果找不到密钥则使用密码登录# -p 选项指定目标服务器 sshd 服务端口号默认22[myzclient ~]$ssh-lroot-p1022serverhostnamerootservers password: server.laoma.cloud排故故障配置密钥登录后远程登录仍要需要输入密码验证。[rootclient ~]# ssh root10.1.8.10 hostnameroot10.1.8.10s password:模拟将目标主机上目标用户的家目录的权限改为777。[rootserver ~]# chmod 777 /root处理过程查看日志bash # 客户端登录的时候监控服务端日志 [rootserver ~]# tail -f /var/log/secure ...... Jul 31 16:13:41 server sshd[3693]: Authentication refused: bad ownership or modes for directory /root ......发现提示文件权限有问题。查找文件权限。bash [rootserver ~]# ls -ld /root drwxrwxrwx. 3 root root 4096 Jul 31 16:09 /root# 更改权限 [rootserver ~]# chmod 700 /root SSH 服务安全加固配置文件基础说明sshd服务配置文件/etc/ssh/sshd_config。帮助sshd_config(5)常见配置PermitRootLogin prohibit-password禁止root用户通过密码登录。PermitRootLogin no禁止 root 用户登录。root用户权限不受限制。root用户存在每个linux系统只需要猜密码就可以。从审计角度来看很难跟踪哪个授权用户以root身份登录并进行了更改。 如果用户必须以普通用户身份登录并切换到root帐户则会生成一个日志事件可用于帮助提供问责制。PasswordAuthentication no禁止用户使用密码登录。AllowUsers exampleuser允许特定用户登录该用户可以提权为root。UseDNS no客户端连接服务器的时候服务器不需要反向解析服务端IP地址提高连接速度。加固配置项1. 禁止 root 密码登录环境准备提前配置好 root 秘钥登录。[rootserver ~]# vim /etc/ssh/sshd_config#PermitRootLogin yes# 添加一行PermitRootLogin prohibit-password# 重启服务[rootserver ~]# systemctl reload sshd连接测试# 即使使用正确的密码也无法远程登录[myzclient ~14:49:11]$sshrootserverhostnamerootservers password: Permission denied, please try again. rootservers password: Permission denied, please try again. rootservers password: Permission denied(publickey,gssapi-keyex,gssapi-with-mic,password).# 如果配置了秘钥登录则需要使用选项强制密码认证[myzclient ~]$ssh-oPreferredAuthenticationspassword rootserver2. 禁止 root 登录环境准备[myzserver ~15:26:09]$sudovim/etc/ssh/sshd_config#PermitRootLogin yes# 添加一行PermitRootLogin no# 重启服务[rootserver ~]# systemctl reload sshd连接测试不管是密码还是秘钥都无法登录# 即使配置了免密登录也无法远程登录[myzclient ~14:49:50]$sshrootserverhostnamerootservers password: Permission denied, please try again. rootservers password: Permission denied, please try again. rootservers password: Permission denied(publickey,gssapi-keyex,gssapi-with-mic,password).# 但是可以使用普通用户登录然后提权为root用户[myzclient ~]$sshmyzserver[myzserver ~]$su-[rootserver ~]#3. 禁止密码登录环境准备[myzserver ~15:26:09]$sudovim/etc/ssh/sshd_config# 注释原有行#PasswordAuthentication yes# 添加新行设置为noPasswordAuthentication no# 重启服务[rootserver ~]# systemctl reload sshd连接测试秘钥可以登录# myz账户未配置密钥登录直接拒绝[myzclient ~]$ssh-oPreferredAuthenticationspassword myzserver Permission denied(publickey,gssapi-keyex,gssapi-with-mic).# 秘钥登录仍然支持[myzclient ~]$sshmyzserver Last login: Thu Jul2316:10:052026from10.1.8.114. 只允许特定用户登录环境准备laowang用户也可以秘钥登录。[rootserver ~]# useradd laowang[rootserver ~16:21:25]# passwd laowangChanging passwordforuser laowang. New password: BAD PASSWORD: The password is shorter than8characters Retype new password: passwd: all authentication tokens updated successfully.[rootserver ~]# mkdir -m 700 /home/laowang/.ssh/[rootserver ~]# cp .ssh/authorized_keys /home/laowang/.ssh/[rootserver ~]# chown -R laowang:laowang /home/laowang/.ssh/配置sshd服务[rootserver ~]# vim /etc/ssh/sshd_config# 最后添加一行AllowUsers laoma# 重启服务[rootserver ~]# systemctl reload sshd添加后如下图测试连接laoma 可以通过秘钥认证登录laowang不管通过什么方式认证都不可以登录。[myzclient ~]$sshlaowangserverhostnamePermission denied(publickey,gssapi-keyex,gssapi-with-mic).[myzclient ~]$sshmyzserverhostnameserver.myz.cloud
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。