少于 1 分钟阅读

本文系统讲解 SSH(Secure Shell)在 Linux 系统中的使用方法,包括基础连接、密钥配置、文件传输、端口转发、安全配置等内容,适合初学者入门与进阶用户参考。


1. 什么是 SSH?

SSH(Secure Shell) 是一种加密的网络协议,用于在不安全的网络中安全访问远程计算机,通常用于远程登录服务器、传输文件、执行命令等操作。

SSH 具有以下特点:

  • 提供强加密的认证和数据传输
  • 支持基于用户名密码或密钥的身份验证
  • 支持端口转发与代理隧道
  • 可用于远程命令执行与图形界面转发(X11)

2. SSH 安装与启动

2.1 Linux 安装客户端(通常预装)

sudo apt update
sudo apt install openssh-client

2.2 安装并启动服务端(服务器)

CODEBLOCKPLACEHOLDER1END

2.3 查看 SSH 服务端口

CODEBLOCKPLACEHOLDER2END


3. SSH 基础用法

3.1 登录远程服务器

CODEBLOCKPLACEHOLDER3END

3.2 指定端口登录

CODEBLOCKPLACEHOLDER4END

3.3 执行远程命令

CODEBLOCKPLACEHOLDER5END

3.4 保持连接后台运行

CODEBLOCKPLACEHOLDER6END


4. SSH 密钥登录配置

4.1 生成 SSH 密钥对

CODEBLOCKPLACEHOLDER7END

默认生成文件:

  • 私钥:~/.ssh/id_rsa
  • 公钥:~/.ssh/id_rsa.pub

4.2 将公钥上传至远程主机

CODEBLOCKPLACEHOLDER8END

或手动追加至远程主机的 ~/.ssh/authorized_keys

4.3 测试免密登录

CODEBLOCKPLACEHOLDER9END


5. SSH 文件传输

5.1 使用 scp(Secure Copy)

CODEBLOCKPLACEHOLDER10END

5.2 使用 rsync(增量传输)

CODEBLOCKPLACEHOLDER11END


6. SSH 端口转发

6.1 本地端口转发(Local Forwarding)

CODEBLOCKPLACEHOLDER12END

6.2 远程端口转发(Remote Forwarding)

CODEBLOCKPLACEHOLDER13END

6.3 动态端口转发(SOCKS 代理)

CODEBLOCKPLACEHOLDER14END


7. SSH 配置文件说明

配置路径:~/.ssh/config

CODEBLOCKPLACEHOLDER15END

连接方式:

CODEBLOCKPLACEHOLDER16END


8. SSH 安全加固

8.1 修改默认端口(如 2222)

CODEBLOCKPLACEHOLDER17END

8.2 禁用 root 登录

CODEBLOCKPLACEHOLDER18END

8.3 禁用密码登录(只允许密钥)

CODEBLOCKPLACEHOLDER19END

8.4 配置防火墙规则(如 UFW)

CODEBLOCKPLACEHOLDER20END


9. 常见问题与排查

问题 可能原因 解决方案
Connection refused SSH 服务未启动 sudo systemctl start ssh
Permission denied 权限错误/密钥无效 检查密钥权限、authorized_keys 是否正确
超时 网络不通或防火墙 检查网络、防火墙端口是否开放
Too many authentication failures SSH 尝试次数过多 使用 IdentitiesOnly=yes 限制密钥尝试

10. 参考资源


📌 提示:建议为重要服务器配置 Fail2ban、设置登录警报、定期检查 authorized_keys 文件等。

留下评论