论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
运维.售后
›
运维.售后
›
基于 Ubuntu22.04 安装 SSH 服务
基于 Ubuntu22.04 安装 SSH 服务
莫张周刘王
金牌会员
|
2024-8-1 05:17:57
|
显示全部楼层
|
阅读模式
楼主
主题
700
|
帖子
700
|
积分
2100
安全外壳协议(Secure Shell,简称 SSH)是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。
SSH 由 IETF 的网络小组(Network Working Group)所制定,SSH 为创建在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有用防止远程管理过程中的信息泄露题目。SSH 最初是 UNIX 体系上的一个程序,厥后又迅速扩展到其他操纵平台。SSH 在正确利用时可补充网络中的漏洞。SSH 客户端适用于多种平台。几乎全部UNIX平台—包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行 SSH。
——引用:安全外壳协议_百度百科
本教程的前置条件是,在 Windows 体系的宿主机上以搭建好了 Ubuntu22.04 的假造机,关于 Ubuntu22.04 假造机的搭建可以参考《基于 VMware 假造机的 Ubuntu22.04 体系安装和设置(新手保姆级教程)》。
一、Ubuntu22.04 安装 SSH 服务
安装 SSH 服务之前,最好先更新一下 Ubuntu 体系的软件包列表:
sudo apt update
复制代码
输入并运行下列命令,即可安装 OpenSSH:
sudo apt install openssh-server -y
复制代码
安装好 SSH 后,可以输入 ssh -V 命令,查抄 OpenSSH 服务器的版本,结果如下图所示:
二、设置 OpenSSH(安全性)
[!CAUTION]
此章节作为对 SSH 的额外了解,SSH 在安装后的默认设置适合大多数用户,如有必要设置,可以编辑 /etc/ssh/sshd_config 文件以调解。
OpenSSH 默认利用安全加密和身份验证,可以通过采取以下设置来进一步增强安全性。
1. 更改 OpenSSH 端口
更改默认的 OpenSSH 端口是防止未经授权访问我们的 Ubuntu 的有用方法,可以编辑 /etc/ssh/sshd_config 设置文件举行更改。
利用超级用户权限(sudo)打开 SSH 设置文件:
sudo vim /etc/ssh/sshd_config
复制代码
原先的 /etc/ssh/sshd_config 设置文件,有很多代码都是被注释掉的,在这些注释中找到并取消注释 Port 此行。删除 # 符号并更改端口号(默认环境下是 22)。例如,将端口更改为 2222:
Port 2222
复制代码
如下如所示:
保存文件并退出编辑器,输入下列命令重新启动 SSH 服务以使更改见效:
sudo systemctl restart ssh
复制代码
需要注意的是,在更改端口后,要确保防火墙允许该端口的流量通过。
2. 限定利用 SSH 登录尝试次数
要在 Ubuntu 上利用 SSH 限定登录尝试,同样是编辑 /etc/ssh/sshd_config 设置文件举行更改,设置 MaxAuthTries 参数即可,该参数后的数字就是限定用户在一次 SSH 会话中尝试登录的次数。当达到指定的尝试次数后,SSH 服务器将拒绝进一步的登录尝试。
找到 MaxAuthTries 行,默认环境下被注释掉的,前面有一个 # 符号。取消注释并设置一个适当的尝试次数,如下图所示,设置为 3:
保存文件并退出编辑器,同样需要重新启动 SSH 服务才能见效。
现在 SSH 服务器将限定用户在一次会话中尝试登录的次数。超过指定的尝试次数后,用户将不再能够举行登录尝试,直到新的 SSH 会话开始。这可以增加服务器的安全性,防止暴力破解攻击。
3. 克制 SSH 以 root 身份连接
克制 SSH 以 root 身份连接是一种常见的安全实践,因为它可以减少潜在的风险。同样是编辑 /etc/ssh/sshd_config 设置文件举行更改,找到 PermitRootLogin 行,取消注释并将其设置为 no:
保存文件并退出编辑器,同样需要重新启动 SSH 服务才能见效。
现在,SSH 将不再允许直接利用 root 用户登录。相反,我们自己也只能利用一个平凡用户登录,然后在需要时 root 权限时通过 sudo 命令来获取 root 权限。这种做法有助于进步体系的安全性,因为它会减少直接攻击 root 用户账户的风险。
三、设置防火墙(UFW)锁定 SSH
确保防火墙允许新端口的流量通过非常重要,否则 SSH 连接将无法成功。在 Ubuntu 中,可以利用 ufw(Uncomplicated Firewall)来管理防火墙规则。
利用以下命令允许新端口的流量通过防火墙:
sudo ufw allow <new port>/tcp
复制代码
例如,刚刚将端口更改为 2222,则应该运行:
sudo ufw allow 2222/tcp
复制代码
然后启用防火墙:
sudo ufw enable
复制代码
如果结果和下图所示一样,那么防火墙已经设置为允许通过新的 SSH 端口的流量,可以通过新的端口连接到 SSH 服务器。
四、远程终端软件通过 SSH 连接 Ubuntu22.04
1. 远程终端软件连接 Ubuntu(以 MobaXterm 为例)
这里以 MobaXterm 为例,以 SSH 的方式连接,以次输入 IP 地点、用户名和端口号(默认 22,改了就输入新的)。
然后输入密码回车即可(密码不表现,纯盲打)。
登录正常的话,就是下图所示的界面了。
2. CMD 窗口连接 Ubuntu
如果没有安装 MobaXterm 等终端软件,可以用 Windows 的 OpenSSH 客户端。在 Windows 10 上,可以通过设置应用中的 “应用和功能” 菜单找到 “可选功能”,然后启用 “OpenSSH 客户端” 功能。在 Windows 11 上,默认环境下 OpenSSH 客户端已经预安装,无需再举行额外的安装。
按组合键 Win + r 打开运行窗口,利用 ssh 命令连接到远程服务器,以下是命令的格式:
ssh username@remote_host
ssh -p port_number username@remote_host
复制代码
第一行是默认端口为 22 的连接命令,第二行是自界说端口号,port_number 为端口号,username 为用户名,remote_host 为 IP 地点。下面的例子是 SSH 连接我的 Ubuntu 主机的命令:
ssh -p 2222 grayson@192.168.31.90
复制代码
输入到运行命令框中:
第一次要先输入 “yes” 回车,再输入密码回车(之后只要输入密码就行),如下图:
3. VS Code 连接 Ubuntu
请参考博客《VS Code 远程连接 SSH 服务器》。
五、Ubuntu22.04 的 SSH 故障排查
通过 SSH 连接 Ubuntu 体系时,最常见的 SSH 服务故障题目就是连接失败,可以按照以下步骤举行故障排查:
确认 SSH 服务是否运行
:
利用以下命令查抄 SSH 服务是否正在运行:
sudo systemctl status ssh
复制代码
如果 SSH 服务正在运行,应该会看到类似于 “active (running)” 的消息。如果服务未运行,您可以尝试启动它:
sudo systemctl start ssh
复制代码
如图所示:
查抄 SSH 设置文件
:
确保 SSH 设置文件 /etc/ssh/sshd_config 中的设置正确。特别关注 Port、PermitRootLogin、MaxAuthTries 等参数是否设置为预期值。
查抄防火墙设置
:
如果更改了 SSH 端口,要确保防火墙允许新端口的流量通过,可以利用以下命令查看当前允许的端口:
sudo ufw status
复制代码
如下图所示,我允许的端口号为 2222,可以利用 ufw 或 iptables 命令来设置防火墙规则。
查看体系日记
:
查抄体系日记以查找与 SSH 相干的任何错误消息。体系日记通常存储在 /var/log 目次下,可以查看 /var/log/auth.log 或 /var/log/syslog 文件。
查抄 SSH 设置的完整性
:
查抄 SSH 设置文件的语法是否正确,可以利用 sshd 命令的 -t 选项来测试设置文件的语法是否正确:
sudo sshd -t
复制代码
如果输入命令后,没有表现任何信息,则表示设置正确。
查看网络连接
:
确保您的服务器网络连接正常。您可以利用 ping 命令来测试网络连接:
ping -c 4 <server_ip>
复制代码
如果仍然无法办理题目,可以尝试查看更详细的日记信息,大概尝试在互联网上搜索相干的错误消息以获取更多资助。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
莫张周刘王
金牌会员
这个人很懒什么都没写!
楼主热帖
06、etcd 写请求执行流程
四、WinUI3下TitleBar的自定义
软件测试项目实战经验附视频以及源码【 ...
不同于Oracle:MySQL的insert会阻塞upd ...
网上书店管理系统项目【Java数据库编程 ...
MySQL用户和权限管理
如何用同一套账号接入整个研发过程? ...
c# sqlsugar,hisql,freesql orm框架全 ...
【云原生】三、详细易懂的Docker 容器 ...
CGCS2000坐标系和WGS84坐标系的区别与 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表