当前位置:首页 > 物理机 > 正文

物理机开启ssh

物理机上 开启 S SH,需先确保已安装SSH服务端软件,如OpenSSH。

SSH服务

SSH是一种用于计算机之间加密通信的协议,常用于远程登录系统、传输文件等,相比传统的Telnet,SSH通过加密确保数据传输的安全性,防止敏感信息(如密码)被窃取。


检查系统是否已安装SSH

在开始配置之前,需确认物理机是否已安装SSH服务。

检查SSH服务状态

  • Linux/Unix系统: sudo systemctl status ssh

    sudo service ssh status
  • Windows系统

    需通过“服务”管理器查看是否安装“OpenSSH SSH Server”。

安装SSH服务

  • Ubuntu/Debian: sudo apt update sudo apt install openssh-server
  • CentOS/RHEL: sudo yum install openssh-server
  • Fedora: sudo dnf install openssh-server
  • Windows

    通过“设置” → “应用” → “可选功能” → 添加“OpenSSH服务器”。

    物理机开启ssh 第1张

    启动并启用SSH服务

    Linux/Unix系统

    • 启动SSH服务: sudo systemctl start ssh

      sudo service ssh start
    • 设置开机自启: sudo systemctl enable ssh

      sudo chkconfig sshd on # 针对旧版System V init系统

    Windows系统

    • 启动SSH服务:
      • 按 Win + R,输入 services.msc,找到“OpenSSH SSH Server”并启动。

    • 设置开机自启:

      在“服务”管理器中,右键“OpenSSH SSH Server” → “属性” → “启动类型”设置为“自动”。

      物理机开启ssh 第2张


    配置SSH服务

    修改SSH配置文件

    • Linux/Unix系统:编辑 /etc/ssh/sshd_config 文件。 sudo nano /etc/ssh/sshd_config
    • Windows系统:编辑 C:ProgramDatasshsshd_config 文件。

    常见配置项

    参数 说明
    Port 修改SSH服务监听的端口(默认22),建议设置为非标准端口(如2222)以提高安全性。
    PermitRootLogin 是否允许root用户远程登录(yes/no/prohibit-password),建议设置为 no 或 prohibit-password。
    PasswordAuthentication 是否启用密码认证(yes/no),可结合密钥认证禁用密码登录。
    AllowUsers 指定允许登录的用户(如 AllowUsers user1 user2)。
    PermitEmptyPasswords 是否允许空密码用户登录(yes/no),建议设置为 no。

    保存并重启SSH服务

    • Linux/Unix: sudo systemctl restart ssh
    • Windows

      在“服务”管理器中重启“OpenSSH SSH Server”。


    配置防火墙以允许SSH流量

    Linux/Unix系统

    • UFW(Ubuntu): sudo ufw allow 22/tcp # 默认端口22 sudo ufw allow 2222/tcp # 如果修改了端口
    • Firewalld(CentOS/RHEL): sudo firewall-cmd --permanent --add-port=22/tcp sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --reload

    Windows防火墙

    • 进入“控制面板” → “系统和安全” → “Windows 防火墙” → “高级设置”。
    • 创建入站规则,允许TCP协议的指定端口(如22或自定义端口)。


    远程连接测试

    使用SSH客户端连接

    • Linux/Mac: ssh user@hostname -p [port] ssh admin@192.168.1.100 -p 2222
    • Windows
      • 使用PowerShell或第三方工具(如PuTTY、MobaXterm)。
      • PowerShell示例: ssh user@hostname -p [port]

    验证连接

    • 如果连接成功,说明SSH服务已正确配置。
    • 如果失败,检查以下内容:
      • 服务器IP和端口是否正确。
      • 防火墙是否放行SSH流量。
      • SSH服务是否正在运行。


    安全加固建议

    1. 禁用Root远程登录
      • 修改 PermitRootLogin 为 no 或 prohibit-password,仅允许普通用户登录后通过 sudo 提权。
    2. 使用密钥认证
      • 生成SSH密钥对(ssh-keygen),将公钥上传到服务器(~/.ssh/authorized_keys),并禁用密码认证(PasswordAuthentication no)。
    3. 限制登录用户
      • 通过 AllowUsers 或 DenyUsers 指定允许或禁止的用户。
    4. 更改默认端口
      • 修改 Port 为非标准端口(如2222),减少被扫描的风险。
    5. 启用Fail2Ban

      安装并配置Fail2Ban,防止暴力免费(针对Linux系统)。


    常见问题与解决方案

    问题 解决方案
    无法连接到SSH服务器 检查服务器IP和端口是否正确。

    确认防火墙已放行SSH流量。

    确保SSH服务已启动。

    Root用户无法登录 检查 PermitRootLogin 配置。

    确保Root用户密码正确(如果允许密码登录)。

    连接超时或被拒绝 检查网络连通性(ping 测试)。

    确认SSH服务未被防火墙阻挡。

    密钥认证失败 确保公钥已正确添加到 ~/.ssh/authorized_keys。

    检查密钥权限(chmod 600)。


    FAQs

    Q1:如何更改SSH的默认端口?

    A1:编辑SSH配置文件(如 /etc/ssh/sshd_config),修改 Port 参数为新的端口号(如 Port 2222),保存后重启SSH服务并更新防火墙规则。

    Q2:如何禁用密码认证,仅允许密钥登录?

    A2:在SSH配置文件中设置 PasswordAuthentication no,确保已配置密钥认证(将公钥添加到 ~/.ssh/authorized_keys),重启SSH服务后即可生效。


    物理机开启ssh 第3张

0