SSH(Secure Shell)协议
SSH是远程管理Linux服务器的行业标准,通过加密通道保障通信安全,以下是详细操作流程:
基础登录方法
-
密码认证登录(适用于临时访问)
ssh username@server_ip -p port_number
username
:您的服务器账户名(非root账户更安全)server_ip
:服务器公网IP或域名-p port_number
:指定SSH端口(默认22,修改后需填写)- 示例:
ssh admin@203.0.113.25 -p 2222
-
执行后操作
- 首次连接需验证主机指纹,输入
yes
确认 - 输入账户密码(密码输入时无视觉反馈,属正常行为)
- 首次连接需验证主机指纹,输入
推荐安全方案:密钥对登录
原理:使用非对称加密替代密码,彻底杜绝暴力破解风险
操作流程:
-
本地生成密钥对(Windows/macOS/Linux通用)
ssh-keygen -t rsa -b 4096
- 默认保存路径:
~/.ssh/id_rsa
(私钥)和id_rsa.pub
(公钥) - 强烈建议设置密钥密码(Passphrase)
- 默认保存路径:
-
上传公钥至服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub -p port_number username@server_ip
- 或手动追加公钥到服务器
~/.ssh/authorized_keys
文件
- 或手动追加公钥到服务器
-
密钥登录验证
ssh -i /path/to/private_key username@server_ip
安全加固最佳实践
-
禁用root登录
编辑/etc/ssh/sshd_config
:PermitRootLogin no
-
修改默认SSH端口
同文件修改:Port 28956 # 建议使用1024-65535间非常用端口
-
仅允许密钥登录(高危操作前备份!)
PasswordAuthentication no
-
启用防火墙限制
sudo ufw allow 28956/tcp # 仅开放新SSH端口 sudo ufw enable
故障排查指南
问题现象 | 解决方案 |
---|---|
Connection refused |
检查防火墙/SSH服务状态 |
Permission denied |
验证密钥权限(chmod 600) |
登录后立即断开 | 检查.bashrc 或.profile 配置 |
密钥登录失败 | 确认authorized_keys 文件权限 |
高级技巧
-
会话保持工具
tmux
或screen
:防止网络中断导致任务终止- 示例:
tmux new -s mysession
-
文件传输
scp -P 28956 local_file user@server:/remote/path # 上传 scp -P 28956 user@server:/remote/file ./local_path # 下载
-
配置简化
编辑本地~/.ssh/config
文件:Host myserver HostName 203.0.113.25 User admin Port 28956 IdentityFile ~/.ssh/myserver_key
登录简化为:
ssh myserver
安全警告
- 私钥等同于密码,禁止通过邮件/即时通讯传输
- 定期轮换密钥(建议每3-6个月)
- 服务器及时安装安全补丁:
sudo apt update && sudo apt upgrade
延伸学习资源
- 权威文档:OpenSSH官方手册
- 安全指南:NIST SP 800-123
- 实操教程:Linux Foundation SSH课程
引用说明:本文操作基于OpenSSH 8.9p1标准协议,安全建议符合CIS Linux Benchmark v3.0规范,技术要点已通过Ubuntu 22.04 LTS及CentOS Stream 9实测验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9447.html