一文搞懂Linux SSH服务:配置与使用指南#

一、什么是 SSH 服务?#

SSH(Secure Shell)是一种安全的网络协议,用于在不安全的网络环境中(比如互联网)安全地访问远程服务器。它替代了早期不安全的 Telnet、FTP 等服务,通过加密传输数据,防止密码或命令被中间人窃取,是 Linux 服务器远程管理的标配工具。

二、为什么选择 SSH?#

  1. 安全性高:数据传输全程加密(默认使用 AES、RSA 等加密算法),防止密码泄露或会话劫持。
  2. 跨平台兼容:支持 Windows、Mac、Linux 等系统的客户端,可通过命令行或图形化工具(如 Xshell、FinalShell)连接。
  3. 功能丰富:除了远程登录,还支持文件传输(SCP/SFTP)、端口转发、X11 转发等高级功能。

三、SSH 服务的组成 #

  • 服务端(sshd):运行在目标服务器上,负责监听 22 号端口(默认),处理客户端的连接请求,验证用户身份并提供服务。
  • 客户端(ssh):运行在本地设备上,通过命令行工具发起连接,如ssh命令用于远程登录,scp用于文件传输。

四、安装 SSH 服务(以常见 Linux 发行版为例)#

1. Ubuntu/Debian 系 #

sudo apt update && sudo apt install openssh-server -y
sudo systemctl enable --now sshd

2. CentOS/RHEL 系 #

sudo yum install openssh-server -y
sudo systemctl enable --now sshd

3. 验证服务状态 #

sudo systemctl status sshd
sudo netstat -tuln | grep 22  

五、客户端基础使用 #

1. 基本登录命令 #

格式:ssh 用户名@服务器IP
示例:

首次连接会提示确认主机密钥,输入yes并回车:

The authenticity of host 
ECDSA key fingerprint is SHA256:xxxxxx.
Are you sure you want to continue connecting (yes/no)? yes

然后输入目标服务器密码即可登录。

2. 进阶:免密登录(强烈推荐)#

免密登录无需重复输入密码,通过密钥对验证身份,步骤如下:

  1. 生成本地密钥对(仅需在客户端执行):

  2. 将公钥复制到目标服务器

  3. 免密登录验证

六、服务端配置(sshd_config)#

SSH 服务的核心配置文件为/etc/ssh/sshd_config,修改后需重启服务生效:

sudo vim /etc/ssh/sshd_config  

常用配置项说明

  • Port 22:修改 SSH 端口(如改为 2222,避免默认端口暴露风险),需同时在防火墙开放新端口。
  • PermitRootLogin yes:是否允许 root 直接登录(不推荐!建议设为no,用普通用户 +sudo提权)。
  • PasswordAuthentication yes:是否允许密码登录(若用免密登录,可设为no)。
  • AllowUsers 用户名:仅允许指定用户登录(如AllowUsers alice)。

修改后重启服务

sudo systemctl restart sshd

七、常见问题与解决 #

  1. 无法连接?检查以下步骤

    • 服务是否运行:sudo systemctl status sshd
    • 端口是否开放:sudo ufw status(Ubuntu)或sudo firewall-cmd --list-ports(CentOS)
    • 防火墙拦截:开放 22 端口(如sudo ufw allow 22)或新端口(如sudo ufw allow 2222
  2. 登录被拒绝?

    • 密码错误:检查用户名和密码是否正确。
    • 配置文件问题:PermitRootLogin设为yes但密码正确,需确认是否密码登录被禁用。
  3. 免密登录失败?

    • 权限问题:目标服务器~/.ssh目录权限应为700authorized_keys权限应为600
    • 公钥未正确复制:手动检查~/.ssh/authorized_keys是否包含公钥内容。

八、总结 #

SSH 是 Linux 服务器远程管理的基石,掌握其安装、配置和使用是运维 / 开发必备技能。核心要点:

  • 服务端安装后确保 sshd 运行正常。
  • 客户端使用ssh命令快速登录,免密登录提升效率。
  • 通过修改配置文件(端口、禁止 root 登录)增强安全性。

建议初学者从基础命令开始练习,逐步尝试免密登录和端口修改,遇到问题优先检查服务状态和防火墙,排查路径清晰化!

https://blog.yeyupiaoling.cn/article/1765193682646?lang=zh-cn