第一步是启用并配置SSH服务:检查sshd状态,若未运行则启动并设为开机自启;用ss命令确认监听22端口;防火墙放行对应端口;首次用密码登录root完成初始化后,立即生成ed25519密钥对、上传公钥、禁用密码认证,确保远程连接安全稳定。

Java 应用部署到 Linux 云服务器,第一步就是安全、稳定地连上去。SSH 不只是“输个密码登录”,而是整套远程管理的起点——尤其涉及 root 初始化,更需兼顾可用性与安全性。下面直接说关键操作,不绕弯。
确认并启用 SSH 服务
云服务器(如 CentOS 7.9、Ubuntu 22.04)通常预装 OpenSSH 服务,但未必默认启用或监听正确端口:
- 登录云厂商控制台(或使用 VNC),执行
sudo systemctl status sshd;若显示inactive,运行sudo systemctl start sshd && sudo systemctl enable sshd - 检查监听状态:
sudo ss -tlnp | grep :22(若改过端口,如:2222,则查对应端口) - 防火墙必须放行:Ubuntu 用
sudo ufw allow 22;CentOS 7+ 用sudo firewall-cmd --add-port=22/tcp --permanent && sudo firewall-cmd --reload
用 SSH 客户端连接并完成 root 初始化
首次连接建议用密码方式快速验证通路,再升级为密钥登录。root 账号初始化包括启用、设密、调权限三步:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 本地终端执行:
ssh root@你的服务器IP(如ssh root@192.168.1.100),首次连接提示指纹时输入yes - 若提示
Permission denied,说明 root 被禁用。先用普通用户(如ubuntu或centos)登录,再执行:sudo passwd root设定强密码 - 编辑
/etc/ssh/sshd_config,确保以下三项生效:PermitRootLogin yes(允许 root 登录)PasswordAuthentication yes(首次设密必需)UsePAM yes(兼容密码验证)
修改后重启服务:sudo systemctl restart sshd
升级为密钥登录并禁用密码认证
root 密码登录风险高,生产环境必须切换为密钥认证:
立即学习“Java免费学习笔记(深入)”;
- 本地生成密钥对:
ssh-keygen -t ed25519 -C "admin@prod"(回车默认路径) - 上传公钥:
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@你的服务器IP - 登录服务器后,编辑
/etc/ssh/sshd_config,将PasswordAuthentication改为no,保留PubkeyAuthentication yes - 重启服务:
sudo systemctl restart sshd;此后仅凭私钥可登录,root 密码将失效
配置 Java 运行环境基础项
SSH 连接稳定后,才开始部署 Java 环境。root 初始化完成后,建议立即创建普通部署用户(如 deploy),避免长期用 root 运行应用:
- 新建用户:
useradd -m -s /bin/bash deploy,设密码:passwd deploy - 赋予必要权限:
usermod -aG wheel deploy(CentOS)或usermod -aG sudo deploy(Ubuntu) - JDK 安装推荐解压到
/opt/java,设置全局环境变量:
在/etc/profile.d/java.sh中写入:export JAVA_HOME=/opt/java/jdk-17export PATH=$JAVA_HOME/bin:$PATH
执行source /etc/profile生效

















