凌峰创科服务平台

linux ssh服务器搭建

在Linux系统中搭建SSH服务器是远程管理服务器的常用方式,通过SSH协议可以安全地进行文件传输、命令执行等操作,以下是详细的搭建步骤及配置方法,适用于主流Linux发行版如Ubuntu、CentOS等。

linux ssh服务器搭建-图1
(图片来源网络,侵删)

安装SSH服务

  1. 检查是否已安装
    在终端中输入以下命令检查SSH服务是否已安装:

    which sshd

    如果返回路径(如/usr/sbin/sshd)则表示已安装,否则需要安装。

  2. 安装OpenSSH服务器

    • 基于Debian/Ubuntu系统
      sudo apt update
      sudo apt install openssh-server
    • 基于RHEL/CentOS系统
      sudo yum install openssh-server
      # 或使用dnf(CentOS 8+)
      sudo dnf install openssh-server
  3. 启动并设置开机自启
    安装完成后,启动SSH服务并设置为开机自启:

    linux ssh服务器搭建-图2
    (图片来源网络,侵删)
    sudo systemctl start sshd
    sudo systemctl enable sshd

配置SSH服务

SSH服务的配置文件位于/etc/ssh/sshd_config,通过修改此文件可以调整服务器行为,以下是常用配置项:

配置项 默认值 说明 修改建议
Port 22 22 SSH监听端口 建议修改为非默认端口(如2222)以提高安全性
PermitRootLogin yes yes 是否允许root用户直接登录 建议改为no,改用普通用户登录后切换至root
PasswordAuthentication yes yes 是否允许密码认证 可结合密钥认证改为no,仅允许密钥登录
PubkeyAuthentication yes yes 是否允许公钥认证 建议启用,结合禁用密码登录提高安全性
AllowUsers 限制允许登录的用户 可指定用户列表(如AllowUsers user1 user2

修改配置示例

  1. 备份原配置文件:
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
  2. 编辑配置文件:
    sudo nano /etc/ssh/sshd_config
  3. 修改关键项(如禁用root登录、修改端口等)后保存退出。

防火墙与SELinux配置

  1. 开放SSH端口

    • Ubuntu(使用UFW)
      sudo ufw allow 2222/tcp  # 假设修改后的端口为2222
      sudo ufw reload
    • CentOS(使用firewalld)
      sudo firewall-cmd --permanent --add-port=2222/tcp
      sudo firewall-cmd --reload
  2. 关闭SELinux(如需)
    在CentOS系统中,若SELinux启用可能阻止SSH连接,可临时关闭测试:

    linux ssh服务器搭建-图3
    (图片来源网络,侵删)
    sudo setenforce 0  # 临时关闭

    若需永久关闭,编辑/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled后重启。

生成SSH密钥对(客户端操作)

为提高安全性,建议使用密钥认证替代密码认证:

  1. 在客户端生成密钥对

    ssh-keygen -t rsa -b 4096

    按提示指定密钥保存路径(默认~/.ssh/id_rsa)和密码短语。

  2. 将公钥上传至服务器

    ssh-copy-id -i ~/.ssh/id_rsa.pub user@服务器IP

    输入用户密码后,公钥将自动添加至服务器的~/.ssh/authorized_keys文件。

重启SSH服务并测试

  1. 重启服务使配置生效

    sudo systemctl restart sshd
  2. 测试连接

    ssh -p 2222 user@服务器IP

    若使用密钥认证,应无需输入密码即可登录。

常见问题排查

  1. 连接超时或拒绝
    检查防火墙是否开放端口、SSH服务是否运行(sudo systemctl status sshd),以及配置文件语法是否正确(sudo sshd -t)。

  2. 密钥认证失败
    确认服务器端~/.ssh/authorized_keys文件权限为600,且所属用户正确:

    chmod 600 ~/.ssh/authorized_keys
    chown user:user ~/.ssh/authorized_keys

相关问答FAQs

Q1: 如何禁止所有用户通过SSH登录,仅允许特定用户?
A1: 编辑/etc/ssh/sshd_config文件,添加以下配置行并重启SSH服务:

AllowUsers user1 user2  # 仅允许user1和user2登录
DenyUsers *            # 拒绝其他所有用户

Q2: 忘记SSH端口修改后的值,如何查看当前监听端口?
A2: 使用以下命令查看SSH服务监听的端口:

sudo ss -tulnp | grep sshd

或检查/etc/ssh/sshd_config文件中的Port配置项。

分享:
扫描分享到社交APP
上一篇
下一篇