ssh 登陆linux服务器
- 云服务器
- 2025-08-05
- 7
SSH登录Linux服务器详解
准备工作
在开始使用SSH连接Linux服务器之前,请确保以下条件已满足:
| 项目 | 说明 |
|——————|————————————————————————–|
| IP地址/域名 | 目标服务器的有效网络标识(如168.1.100或example.com) |
| 端口号 | 默认为22,若自定义需提前知晓(防火墙需放行该端口) |
| 用户名 | 具有登录权限的系统用户账户 |
| 认证方式 | 密码认证、密钥对认证(推荐)或两者结合 |
| 客户端工具 | Windows下可用PuTTY/Xshell;macOS/Linux自带终端或iTerm2等 |
基础命令语法
通用格式如下:
ssh [选项] 用户名@主机地址 [-p 端口号]
示例1(密码登录):
ssh root@192.168.1.100 # 使用root用户直接连接默认端口22
示例2(指定端口+密钥登录):
️ 注意:首次连接会提示是否保存主机指纹,建议手动验证后再确认,输入yes将永久存入~/.ssh/known_hosts文件。
密钥认证配置步骤
这是最安全的登录方式,推荐优先采用:
-
生成密钥对(本地操作)

按提示选择保存路径(默认~/.ssh/id_rsa),可设置通行短语增强安全性。
-
上传公钥至服务器
执行以下命令将公钥添加到目标用户的授权列表:
ssh-copy-id user@remote_host # 自动完成~/.ssh/authorized_keys写入若失败则手动操作:
cat ~/.ssh/id_rsa.pub | ssh user@remote_host 'mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys'
-
权限检查
确保服务器端文件符合安全要求:
| 路径 | 必要权限 | 作用 |
|———————–|———————–|————————–|
| ~/.ssh | 700 (drwx——) | 仅属主可读写执行 |
| ~/.ssh/authorized_keys | 600 (-rw——-) | 禁止其他用户访问 |
- 网络连通性测试 ping <目标IP> # ICMP协议检测基础可达性 telnet <目标IP> 22 # 验证TCP端口是否开放
- 查看日志文件
- 客户端:/var/log/auth.log(Ubuntu系)、/var/adm/messages(RHEL系)
- 服务器端:/var/log/secure记录失败尝试细节
- 调试模式启动 ssh -vvv user@host # 输出详细交互过程用于定位错误根源
- 防火墙策略核查
使用iptables -L -n -v或ufw status检查入站规则是否拦截了SSH流量。
高级功能与技巧
| 功能 | 实现方法 | 应用场景举例 |
|---|---|---|
| 端口转发 | -L local_port:remote_addr:remote_port | 突破防火墙限制访问内网服务 |
| 隧道加密传输 | -D listen_port创建SOCKS代理 | 安全浏览网页或传输敏感数据 |
| 多跳级联连接 | Host .example.com ProxyJump bastion.example.com(配合配置文件) | 跨多个安全区域分段认证 |
| X11图形界面转发 | -X启用基本转发 / -Y信任所有请求 | 远程运行GUI应用程序 |
| 动态终端自适应 | 终端类型设置为xterm-256color并配合TMUX分屏工具 | 提升交互式操作体验 |
常见问题排查指南
当遇到连接故障时,按顺序执行以下诊断流程:
相关问题与解答
Q1: 如果忘记密码且无法通过密钥登录怎么办?
A: 联系系统管理员重置账户密码;若拥有物理控制权,可进入单用户模式(GRUB菜单按e编辑启动参数并添加init=/bin/bash)临时修改密码,切勿强行暴力免费!
Q2: 如何限制特定IP才能SSH登录?
A: 修改SSHD配置文件(通常位于/etc/ssh/sshd_config),添加类似配置项:
AllowUsers root@192.168.1.0/24 admin@10.0.0.5 DenyGroups others
重启服务使生效:systemctl restart sshd,同时建议结合Fail
