SSH协议

  1. SSH定义:

    • SSH是Secure Shell的缩写,它是一种网络协议,为客户端提供安全的Shell环境,用于远程登录和会话管理。SSH通过加密通信,确保数据传输的保密性和完整性。
    • SSH协议存在多种实现,系统默认使用的是OpenSSH,默认端口为TCP 22。
  2. OpenSSH:

    • 服务名称: sshd
    • 服务端主程序: /usr/sbin/sshd
    • 客户端主程序: /usr/bin/ssh
    • 服务端配置文件: /etc/ssh/sshd_config

配置OpenSSH服务

  1. 服务监听选项:

    • 配置文件路径:/etc/ssh/sshd_config
    • 配置内容示例:

      Port 22
      Protocol 2
      ListenAddress 192.168.1.100
      UseDNS no
    • 配置解释:

      • Port 22: 指定服务监听的端口号。
      • Protocol 2: 指定使用的协议版本。
      • ListenAddress 192.168.1.100: 监听特定的IP地址。
      • UseDNS no: 禁用DNS反向解析。
  2. 用户登录控制:

    • 禁止root用户和空密码用户登录:

      PermitRootLogin no
      PermitEmptyPasswords no
    • 配置登录时间和重试次数:

      LoginGraceTime 2m
      MaxAuthTries 6
    • 允许或禁止特定用户登录:

      AllowUsers alice admin@192.168.1.101

      注意:不要与DenyUsers同时使用。

  3. 登录验证:

    • 验证服务器中的本地用户账号。
    • 验证方式:

      • 密码验证:

        PasswordAuthentication yes
      • 密钥对验证:

        PubkeyAuthentication yes
        AuthorizedKeysFile .ssh/authorized_keys

SSH命令

  1. 远程安全登录:

    • 格式:

      ssh [user@]host [command]
    • 示例:

      ssh alice@192.168.1.100
      ssh 192.168.1.100
    • 连接时需输入密码。
  2. SCP命令:

    • 用于远程安全复制文件。
    • 格式:

      scp user@host:file1 file2
      scp file1 user@host:file2
      scp -r user@host:远端目录 本地目录
  3. SFTP命令:

    • 安全FTP上传下载。
    • 格式:

      sftp user@host

示例2(不同场景):

  1. 配置文件路径

    /etc/ssh/sshd_config
  2. 配置内容示例

    Port 2200
    Protocol 2
    ListenAddress 172.16.0.1
    UseDNS no
  3. 用户登录控制

    PermitRootLogin no
    PermitEmptyPasswords no
    LoginGraceTime 1m
    MaxAuthTries 3
    AllowUsers bob tom@172.16.0.2
  4. 登录验证

    PasswordAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile /home/user/.ssh/authorized_keys

本文由mdnice多平台发布


逼格高的汤圆
10 声望2 粉丝