为 SSH 开启两步验证
  LinuxNetwork   0 评论

为 SSH 开启两步验证

  LinuxNetwork   0 评论

使用 Google Authenticator 来为 SSH 开启两步验证,加强 SSH 安全性

安装

包管理安装

#CentOS 6系统
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
yum install google-authenticator -y

#CentOS 7系统
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install google-authenticator -y

#Debian/Ubuntu系统
apt update
apt install libpam-google-authenticator -y

编译安装

  1. 安装依赖

    #CentOS系统
    yum install gcc make pam-devel libpng-devel     libtool wget git autoconf automake qrencode -y
    
    #Debian/Ubuntu系统
    apt update
    apt install -y gcc make autoconf automake libtool libpam0g-dev libqrencode3 git
  2. 安装软件

    git clone https://github.com/google/google-authenticator-libpam.git
    cd google-authenticator-libpam
    ./bootstrap.sh
    ./configure
    make && make install

配置

  1. 启用验证器

    google-authenticator
    # 按提示依次键入 y/n,记录下 backup code,用谷歌验证器 app 扫描二维码
  2. 配置 PAM 文件

    打开 /etc/pam.d/sshd 文件,在指定位置添加 auth required pam_google_authenticator.so

    #CentOS 6在#%PAM-1.0下面一行添加
    #CentOS 7在auth substack password-auth下面一行添加
    #Debian和Ubuntu在末尾添加
  3. 修改 SSH 配置

    sed -i -r 's#(ChallengeResponseAuthentication) no#\1 yes#g' /etc/ssh/sshd_config
  4. 校准系统时间

    date # 查看系统时间,如果不对,输入下列命令
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  5. 应用 SSH 配置

    service sshd restart
    # systemctl restart sshd
    # /etc/init.d/sshd restart

参考来源

回复