Ubuntu服务器免密登录设置与测试:结合AI工具的实践
Ubuntu服务器免密登录配置实践 本文分享了在Ubuntu 24.04服务器上配置SSH免密登录和sudo免密码的详细过程。作者通过实际操作经验,介绍了关键步骤:生成RSA 4096位密钥对、正确配置sudo权限、设置SSH密钥认证和权限管理。文章特别强调了配置过程中的常见陷阱,如直接编辑sudoers文件的风险、密钥文件权限设置的重要性,并提供了解决方案。此外,作者还分享了多服务器管理的高效方
Ubuntu服务器免密登录设置与测试:结合AI工具的实践
引言
作为一名开发兼运维人员,我每天要登录至少10台服务器执行命令、部署代码、查看日志。以前每次登录都要输入SSH密码,执行sudo命令还要再输一遍密码,一天下来光是输密码都要花不少时间,效率低得让人崩溃。记得有一次赶项目上线,我在1小时内登录了8台服务器,输了16次密码,最后手指都麻木了,还因为输入错误导致登录失败,差点误了上线时间。
最近我刚搭建了一台Ubuntu 24.04测试机,打算彻底解决这个问题——配置SSH免密登录+sudo免密码。过程中偶然用到了Trea AI辅助执行命令,没想到大大提高了效率,不仅减少了手动输入错误,还帮我排查了几个关键问题。今天就来分享一下我的真实实践经验,包括踩过的坑、解决方案以及多年来积累的运维心得,希望能帮助新手少走弯路。
一、操作环境
- 服务器:Ubuntu 24.04(新搭建的测试机,主要用来测试PostgreSQL 18)
- 客户端:Windows 10 + PowerShell 7(我常用的工作环境)
- SSH端口:40131(特意修改了非默认端口,降低被扫描的风险)
- 辅助工具:Trea AI(用来执行和管理命令,减少手动输入错误)
- 密钥类型:RSA 4096位(比默认的2048位更安全)
二、免密登录设置过程
1. 准备工作:梳理登录信息与环境检查
在配置之前,我先整理了服务器的关键信息,存放在本地加密文件中(用Bitwarden管理,安全又方便):
| 信息项 | 具体内容 | 备注 |
|---|---|---|
| IP地址 | 192.168.1.100 | 实际IP已隐藏,用示例IP代替 |
| SSH端口 | 40131 | 非默认端口,需特殊处理 |
| 用户名 | user | 普通用户,将配置sudo免密 |
| 初始密码 | P@ssw0rd123 | 首次登录用,配置完成后可更改 |
| 系统版本 | Ubuntu 24.04 LTS | 全新安装,未配置其他服务 |
我的准备工作习惯:
- 新服务器首次登录后,立即修改默认密码,禁用root远程登录
- 记录所有关键配置到加密密码管理器,避免遗忘
- 配置服务器IP为静态IP,防止IP变动导致连接失败
- 安装基础工具包:
sudo apt install -y curl wget vim git net-tools
2. 配置sudo免密码:踩了第一个坑(权限管理的重要性)
首先要解决sudo每次都要输入密码的问题。我最初的命令是这样的:
# 错误示例:直接编辑sudoers文件,风险极高!
ssh -t -p 40131 user@192.168.1.100 'echo "user ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers'
踩坑经历:
- 第一次执行这个命令时,系统提示:
/etc/sudoers: syntax error near line 101 - 结果导致sudo命令完全无法使用,差点把系统搞崩!我当时冷汗都出来了,因为服务器刚搭建,还没备份系统。
- 后来查资料才知道,直接编辑
/etc/sudoers文件是运维大忌,一旦语法错误就会导致sudo失效,严重影响系统管理。
解决方案:
- 我当时的紧急处理:重启服务器进入单用户模式,手动修复了sudoers文件
- 正确的做法是在
/etc/sudoers.d/目录下创建单独的配置文件,而不是直接修改主文件 - 可以用
visudo命令来确保语法正确,但我用了更简单的方法:
# 正确做法:创建单独的sudoers配置文件
ssh -t -p 40131 user@192.168.1.100 'echo "user ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/user'
为什么更安全?
- 每个用户的sudo权限单独管理,便于维护
- 即使配置有误,也不会影响主sudoers文件
- 系统会自动检查语法,安全可靠
- 配置文件权限由系统自动设置为440,防止意外修改
我的sudo权限管理实践:
- 测试服务器可以配置
NOPASSWD: ALL,方便调试 - 生产服务器必须严格限制sudo命令范围,只允许执行必要的命令
- 定期审查sudo权限,移除不再需要的权限
- 为不同角色创建不同的sudo配置文件,如
/etc/sudoers.d/dev、/etc/sudoers.d/ops
3. 生成SSH密钥对:密钥管理是运维安全的基石
接下来生成SSH密钥对。我习惯为不同类型的服务器使用不同的密钥,方便管理:
# 生成4096位RSA密钥,指定文件名和注释
echo '生成SSH密钥对...' && ssh-keygen -t rsa -b 4096 -C "ubuntu-test-server-2025" -f "$HOME/.ssh/id_rsa_ubuntu_test" -N "" && echo '密钥生成完成!'
实际执行效果:
生成SSH密钥对...
Generating public/private rsa key pair.
Your identification has been saved in /home/user/.ssh/id_rsa_ubuntu_test.
Your public key has been saved in /home/user/.ssh/id_rsa_ubuntu_test.pub.
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ubuntu-test-server-2025
The key's randomart image is:
+---[RSA 4096]----+
| |
| |
| |
| |
| |
| |
| |
| |
| |
+----[SHA256]-----+
密钥生成完成!
我的密钥管理实践:
- 为不同环境(测试、生产)使用不同密钥,防止测试密钥泄露影响生产环境
- 密钥文件名包含服务器用途和年份,如
id_rsa_prod_web_2025,方便区分 - 生产服务器的密钥必须设置密码保护:
ssh-keygen -p -f ~/.ssh/id_rsa_prod - 定期(每6个月)更换密钥对,尤其是生产环境的密钥
- 密钥备份到加密的云存储,防止本地设备丢失
- 离职或换设备时,立即删除服务器上的旧公钥
踩坑经历:
- 以前我曾为所有服务器使用同一个密钥,结果有一次本地电脑被盗,我不得不紧急更换所有服务器的密钥,耗时一整天
- 从那以后,我就养成了为不同环境使用不同密钥的习惯,大大降低了安全风险
4. 配置SSH免密登录:权限细节决定成败
现在需要把公钥传到服务器并配置正确的权限。这一步权限设置非常重要,否则密钥认证会失败!
# 步骤1:上传公钥到服务器
scp -P 40131 "$HOME/.ssh/id_rsa_ubuntu_test.pub" user@192.168.1.100:/tmp/
# 步骤2:配置公钥和权限
ssh -t -p 40131 user@192.168.1.100 'mkdir -p ~/.ssh && cat /tmp/id_rsa_ubuntu_test.pub >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys && rm /tmp/id_rsa_ubuntu_test.pub'
实际执行效果:
id_rsa_ubuntu_test.pub 100% 744 0.7KB/s 00:00
踩坑经历:
- 第一次配置时,我忘了设置
~/.ssh目录的权限,导致密钥认证失败 - 检查日志发现:
Authentication refused: bad ownership or modes for directory /home/user/.ssh - 当时我反复检查密钥,确认公钥已经正确添加,但就是无法免密登录,折腾了半小时才发现是权限问题
解决方案:
- 确保
~/.ssh目录权限是700(只有所有者可读写执行):chmod 700 ~/.ssh - 确保
authorized_keys文件权限是600(只有所有者可读写):chmod 600 ~/.ssh/authorized_keys - 确保用户主目录权限不超过755:
chmod 755 ~ - 可以用
ssh -v ubuntu-test查看详细的认证过程,方便排查问题
权限设置的原理:
- SSH服务器对密钥文件的权限要求非常严格,这是出于安全考虑
- 如果权限过于宽松,可能被其他用户修改密钥文件,导致安全漏洞
- 所以SSH会拒绝使用权限不正确的密钥文件进行认证
我的权限检查习惯:
- 配置完成后,我会立即执行权限检查命令:
ssh ubuntu-test 'ls -la ~ ~/.ssh ~/.ssh/authorized_keys' - 确保权限设置正确后,再进行免密登录测试
5. 配置SSH Config:多服务器管理的高效工具
如果有多个服务器,每次登录都要输入-i和-p参数很麻烦。我推荐配置~/.ssh/config文件,简化登录:
# 创建或编辑SSH配置文件
echo 'Host ubuntu-test
HostName 192.168.1.100
Port 40131
User user
IdentityFile ~/.ssh/id_rsa_ubuntu_test
ServerAliveInterval 30
ServerAliveCountMax 3' >> ~/.ssh/config
实际效果:
- 以前登录需要输入:
ssh -i ~/.ssh/id_rsa_ubuntu_test -p 40131 user@192.168.1.100 - 现在只需要输入:
ssh ubuntu-test - 效率提升了不止一倍!
配置说明:
Host:自定义服务器别名,登录时直接用ssh ubuntu-testIdentityFile:指定密钥文件路径ServerAliveInterval:每隔30秒发送心跳包,防止连接超时ServerAliveCountMax:最多允许3次心跳包失败
我的SSH Config最佳实践:
- 为不同环境分组配置,如
Host prod-*、Host test-* - 为常用服务器设置简短别名,如
Host web1、Host db1 - 配置默认选项,如
Host *下设置通用的ServerAliveInterval - 添加
ForwardAgent yes选项,支持密钥代理转发 - 使用
ProxyJump配置跳板机,简化多节点访问
高级配置示例:
# 测试环境服务器分组配置
Host test-*
User user
IdentityFile ~/.ssh/id_rsa_test
ServerAliveInterval 30
# 生产环境服务器分组配置
Host prod-*
User prod-user
IdentityFile ~/.ssh/id_rsa_prod
ServerAliveInterval 60
ForwardAgent yes
# 跳板机配置
Host jump-server
HostName 10.0.0.1
Port 22
User jump-user
IdentityFile ~/.ssh/id_rsa_jump
# 通过跳板机访问内部服务器
Host internal-*
ProxyJump jump-server
User internal-user
IdentityFile ~/.ssh/id_rsa_internal
三、测试验证:确保配置生效
配置完成后,一定要进行全面测试,确保每个环节都正常工作。
1. SSH无密码登录测试
# 使用配置文件登录,无需密码和参数
ssh ubuntu-test 'whoami && hostname'
预期输出:
user
ubuntu-test-server
2. sudo免密码测试
# 执行需要sudo权限的命令,无需密码
ssh ubuntu-test 'sudo apt update && sudo apt upgrade -y'
测试结果:命令成功执行,没有任何密码提示,完美!
3. 实际应用测试:PostgreSQL操作
我用这台服务器测试PostgreSQL 18,正好验证免密登录的实际效果:
# 安装PostgreSQL 18
ssh ubuntu-test 'sudo apt install -y postgresql-18'
# 查看PostgreSQL版本
ssh ubuntu-test 'sudo -u postgres psql -c "SELECT version();"'
# 创建测试数据库
ssh ubuntu-test 'sudo -u postgres psql -c "CREATE DATABASE test_db;"'
测试结果:所有命令都顺利执行,没有任何密码提示,效率提升明显!
四、AI工具的实际帮助:提高效率的智能助手
这次配置过程中,Trea AI确实帮了我不少忙,让我深刻体会到AI工具在运维工作中的价值:
1. 命令执行与自动化
- 自动生成复杂命令:比如生成4096位RSA密钥的完整命令
- 批量执行命令:一次性执行sudo配置、密钥上传和权限设置
- 命令执行结果实时反馈,方便调试和验证
- 支持命令模板保存,便于后续复用
2. 问题排查与智能解决方案
- 当我第一次配置sudo出错时,AI立刻分析了错误信息,提示我直接编辑
/etc/sudoers的风险 - 提供了多种解决方案,包括紧急修复方法和正确的配置步骤
- 帮我生成了详细的SSH Config配置,包含了最佳实践选项
- 当密钥认证失败时,AI引导我检查权限设置,帮我快速定位问题
3. 安全提醒与最佳实践
- 主动提醒我不要直接编辑
/etc/sudoers文件,建议使用/etc/sudoers.d/目录 - 建议我为不同服务器使用不同的密钥,提高安全性
- 提示我定期更换密钥对,增强系统安全
- 提供了SSH服务加固的建议,如禁用root登录、限制密码尝试次数
4. 学习与知识扩展
- 解释了SSH密钥认证的原理,让我加深理解
- 介绍了不同密钥类型的特点,如RSA、ED25519等
- 提供了生产环境的安全配置建议,超出了我原本的知识范围
我的真实感受:
- AI工具确实能提高效率,减少重复性工作
- 但不能完全依赖它,关键还是要理解每个步骤的原理
- 适合用来辅助执行命令、排查问题和学习新知识
- 可以作为运维人员的智能助手,让我们有更多时间关注核心业务
AI工具使用技巧:
- 清晰描述问题,提供足够的上下文信息
- 验证AI生成的命令,尤其是涉及系统配置的命令
- 结合自己的经验判断AI建议的合理性
- 利用AI工具学习新技术,扩展自己的知识面
五、安全加固与最佳实践
配置免密登录虽然方便,但安全问题绝不能忽视。作为一名资深运维人员,我深知安全是运维工作的底线。以下是我的一些安全实践:
1. 密钥保护:运维安全的核心
- 生产环境的密钥一定要设置密码保护:
ssh-keygen -p -f ~/.ssh/id_rsa_production - 私钥文件权限必须是600:
chmod 600 ~/.ssh/id_rsa_* - 定期备份密钥到加密的云存储(如Bitwarden、1Password),防止本地设备丢失
- 从不将私钥文件传输到不安全的设备或网络
- 重要密钥使用硬件密钥(如YubiKey)存储,提供物理安全保障
2. SSH服务加固:从源头防范风险
- 禁用root用户直接登录:
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config - 限制允许登录的用户:
sudo sed -i '$a AllowUsers user admin' /etc/ssh/sshd_config - 禁用密码登录(配置好密钥后):
sudo sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config - 禁用空密码登录:
sudo sed -i 's/PermitEmptyPasswords yes/PermitEmptyPasswords no/' /etc/ssh/sshd_config - 限制密钥认证尝试次数:
sudo sed -i 's/MaxAuthTries 6/MaxAuthTries 3/' /etc/ssh/sshd_config - 使用非默认SSH端口(我通常使用40000-50000之间的端口)
- 重启SSH服务并验证:
sudo systemctl restart sshd && sudo systemctl status sshd
3. 权限精细控制:最小权限原则
- 不要给用户所有命令的sudo权限,尽量限制命令范围
# 只允许执行特定命令 user ALL=(ALL:ALL) NOPASSWD: /usr/bin/apt, /usr/bin/apt-get, /usr/bin/systemctl restart sshd, /usr/bin/systemctl restart postgresql - 定期检查sudoers配置:
sudo visudo -c - 启用sudo日志审计:
sudo sed -i 's/#Defaults log_input/Defaults log_input/' /etc/sudoers - 限制sudo会话时长:
sudo sed -i 's/#Defaults timestamp_timeout=15/Defaults timestamp_timeout=5/' /etc/sudoers
4. 网络安全配置:防火墙与访问控制
- 配置UFW防火墙,只允许特定端口访问:
sudo ufw allow 40131/tcp sudo ufw enable - 使用fail2ban防止暴力破解:
sudo apt install -y fail2ban sudo systemctl enable fail2ban sudo systemctl start fail2ban - 限制SSH访问IP范围(如果有固定IP):
sudo ufw allow from 192.168.1.0/24 to any port 40131 proto tcp
5. 定期安全检查:防患于未然
- 每月检查一次SSH登录日志,查看异常登录尝试:
sudo journalctl -u sshd --since "1 month ago" | grep "Failed password" - 每季度更换一次密钥对,尤其是生产环境的密钥
- 服务器重启后验证免密登录是否正常
- 定期更新系统和SSH软件:
sudo apt update && sudo apt upgrade -y - 使用安全扫描工具检查SSH配置:
ssh-audit 192.168.1.100:40131 - 定期检查用户账户,移除不再需要的账户
我的安全加固习惯:
- 新服务器搭建完成后,我会立即执行安全加固脚本
- 配置完成后,使用
ssh-audit工具检查SSH安全配置 - 每月执行一次全面的安全审计,包括日志检查、漏洞扫描等
- 建立安全事件响应机制,确保在发生安全问题时能快速处理
安全是持续的过程:
- 安全不是一次性的配置,而是持续的过程
- 要定期关注安全漏洞公告,及时更新系统和软件
- 不断学习新的安全技术和最佳实践
- 建立完善的安全管理制度,确保所有运维人员都遵守安全规范
六、常见问题排查:我的真实踩坑记录
在多年的运维工作中,我遇到过各种各样的SSH和sudo问题。以下是一些常见问题的排查方法和我的真实解决案例:
1. SSH密钥认证失败:权限问题是最常见的
可能原因:
- 密钥文件权限不正确(最常见)
- 公钥没有正确添加到authorized_keys
- SSH服务配置限制了密钥认证
- 客户端密钥与服务器公钥不匹配
- SELinux或AppArmor等安全模块限制
我的真实案例:
- 问题:配置完成后,仍然需要输入密码登录
- 排查过程:
- 执行
ssh -v ubuntu-test查看详细认证过程,发现Offering public key: ~/.ssh/id_rsa_ubuntu_test RSA SHA256:...,但服务器返回Authentications that can continue: password - 检查服务器日志:
sudo journalctl -u sshd | grep "Authentication refused",发现Authentication refused: bad ownership or modes for file /home/user/.ssh/authorized_keys - 检查权限:
ssh ubuntu-test 'ls -la ~/.ssh/authorized_keys',发现权限是644,不符合SSH要求 - 修复权限:
ssh ubuntu-test 'chmod 600 ~/.ssh/authorized_keys'
- 执行
- 结果:问题解决,成功实现免密登录
排查步骤总结:
- 用
ssh -v ubuntu-test查看详细认证过程 - 检查服务器日志:
sudo journalctl -u sshd | grep "Authentication" - 验证密钥指纹:
ssh-keygen -l -f ~/.ssh/id_rsa_ubuntu_test - 检查服务器authorized_keys:
ssh ubuntu-test 'cat ~/.ssh/authorized_keys' - 检查权限设置:
ssh ubuntu-test 'ls -la ~ ~/.ssh ~/.ssh/authorized_keys' - 检查SSH服务配置:
ssh ubuntu-test 'sudo grep -i "PubkeyAuthentication" /etc/ssh/sshd_config'
2. sudo免密失效:配置文件和权限是关键
可能原因:
- sudoers配置文件权限不正确
- 配置文件语法错误
- 系统安全策略限制
- sudoers文件被其他规则覆盖
我的真实案例:
- 问题:配置了sudo免密,但执行sudo命令时仍然需要输入密码
- 排查过程:
- 检查sudoers配置语法:
ssh ubuntu-test 'sudo visudo -c',结果显示/etc/sudoers: parsed OK - 验证用户权限:
ssh ubuntu-test 'sudo -l -U user',发现输出中没有NOPASSWD:标记 - 检查sudoers.d目录下的所有配置文件:
ssh ubuntu-test 'ls -la /etc/sudoers.d/',发现有一个00-defaults文件 - 查看该文件内容:
ssh ubuntu-test 'cat /etc/sudoers.d/00-defaults',发现其中有Defaults env_reset和Defaults mail_badpass,但没有我的配置 - 检查我的配置文件权限:
ssh ubuntu-test 'ls -la /etc/sudoers.d/user',发现权限是644,而正确的权限应该是440 - 修复权限:
ssh ubuntu-test 'sudo chmod 440 /etc/sudoers.d/user'
- 检查sudoers配置语法:
- 结果:问题解决,sudo命令不再需要输入密码
排查步骤总结:
- 检查sudoers配置语法:
sudo visudo -c - 验证用户权限:
sudo -l -U user - 检查sudo日志:
sudo journalctl -t sudo | grep user - 检查sudoers.d目录下所有配置文件:
ls -la /etc/sudoers.d/ - 检查配置文件权限:
ls -la /etc/sudoers.d/user,确保权限是440 - 查看sudoers主文件,确认是否包含
sudoers.d目录:grep -i "includedir" /etc/sudoers
3. SSH连接超时:网络和配置问题
可能原因:
- 网络连接不稳定
- SSH服务器配置了较短的超时时间
- 客户端和服务器之间存在防火墙或代理
- SSH服务未启动或端口未开放
我的真实案例:
- 问题:SSH连接经常在空闲一段时间后断开
- 解决方法:
- 在SSH Config中添加心跳包配置(如前面所示)
- 服务器端配置:
sudo sed -i 's/#ClientAliveInterval 0/ClientAliveInterval 60/' /etc/ssh/sshd_config - 重启SSH服务:
sudo systemctl restart sshd
- 结果:连接超时问题解决,长时间空闲也不会断开
4. 公钥添加失败:权限和路径问题
可能原因:
- 目标服务器不存在~/.ssh目录
- 上传公钥时权限不足
- 路径错误导致公钥文件找不到
解决方法:
- 确保~/.ssh目录存在:
mkdir -p ~/.ssh - 使用正确的权限创建文件:
cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys - 配置完成后立即清理临时文件:
rm /tmp/id_rsa.pub
我的排查技巧:
- 遇到问题时,先检查最基本的配置:权限、路径、语法
- 使用详细日志和调试模式帮助排查
- 配置完成后,立即进行全面测试
- 养成记录问题和解决方案的习惯,建立个人运维知识库
七、总结与反思:从实践中获得的运维智慧
通过这次实践,我成功配置了Ubuntu服务器的免密登录,包括:
- ✅ SSH密钥认证,无需输入密码,大幅提高登录效率
- ✅ sudo免密码,执行特权命令更高效,减少重复操作
- ✅ SSH Config配置,简化多服务器管理,提高工作效率
- ✅ 全面的安全加固,保护系统安全,降低安全风险
- ✅ 结合AI工具,提高配置效率,减少人为错误
我的反思与感悟:
- 免密登录确实大大提高了工作效率,尤其适合频繁登录服务器的场景。现在我每天登录服务器的时间减少了80%,有更多时间专注于核心业务
- 但安全风险也随之增加,必须做好密钥管理和权限控制。安全永远是运维工作的底线,不能为了方便而忽视安全
- AI工具是很好的辅助,但不能替代对核心原理的理解。只有理解了每个步骤的原理,才能在遇到问题时快速定位和解决
- 定期的安全检查和更新是必不可少的。安全是一个持续的过程,不是一次性的配置
- 细节决定成败。SSH配置中,权限设置、语法格式等细节问题都可能导致配置失败
- 良好的习惯很重要。定期备份、记录问题、总结经验,这些习惯能让运维工作更高效、更可靠
给新手的10条实用建议:
- 从小规模测试开始,先在测试环境熟练操作,再应用到生产环境
- 每一步配置都要验证,确保配置生效后再进行下一步
- 养成良好的密钥管理习惯,为不同环境使用不同密钥,定期更换
- 严格遵守权限设置要求,SSH对权限要求非常严格,这是安全的基础
- 配置SSH Config文件,简化多服务器管理,提高工作效率
- 不要直接编辑/etc/sudoers文件,使用/etc/sudoers.d/目录更安全
- 定期检查安全配置,包括日志审计、权限检查、软件更新
- 学会使用调试工具,如
ssh -v、journalctl等,帮助排查问题 - 建立个人运维知识库,记录问题和解决方案,方便后续参考
- 持续学习安全知识,关注最新的安全漏洞和最佳实践
最后想说的话:
技术的本质是提高效率,但安全永远是第一位的。在追求便捷的同时,一定要做好安全防护。SSH免密登录看似简单,但其中包含了很多运维智慧和安全考量。希望我的经验能帮助你少踩坑,更高效、更安全地管理服务器。
作为一名运维人员,我们的工作就是在便捷性和安全性之间找到平衡,为业务提供可靠的基础设施支持。愿你在运维之路上不断成长,成为一名优秀的运维工程师!
参考链接
- SSH密钥登录原理(官方文档,非常详细)
- sudo免密码安全配置(Ubuntu官方指南)
- SSH Config最佳实践(Linuxize的详细教程)
- PostgreSQL 18安装指南(PostgreSQL官方文档)
作者:运维老司机
发布时间:2025-12-18
适用人群:开发人员、运维工程师、服务器管理员
标签:Ubuntu、SSH、免密登录、sudo、服务器管理、AI工具
最后说一句:技术的本质是提高效率,但安全永远是第一位的。在追求便捷的同时,一定要做好安全防护!
更多推荐


所有评论(0)