• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lfzyx
V2EX  ›  程序员

求ssh两步验证方案

  •  
  •   lfzyx ·
    lfzyx · Oct 14, 2013 · 5396 views
    This topic created in 4626 days ago, the information mentioned may be changed or developed.
    在网上搜了下都是利用Google Authenticator实现ssh两步验证,但我想把验证方式改为email接收验证码,有没有实现该功能的可行方法?
    16 replies    1970-01-01 08:00:00 +08:00
    KKKKale
        1
    KKKKale  
       Oct 14, 2013
    我们就是这样子的。。验证码发邮件和短信。。不过不知道sa是怎么做到的
    zhujinliang
        2
    zhujinliang  
       Oct 14, 2013
    把用户的shell改成验证程序?ssh连入后,先进验证程序,验证后由验证程序启动bash。
    不知可行不
    lfzyx
        3
    lfzyx  
    OP
       Oct 14, 2013
    @jyhmijack 我在网上居然搜不到类似的方案,难道是各家心照不宣的黑技术?。。
    kennedy32
        4
    kennedy32  
       Oct 14, 2013
    google了一下 http://ben.akrin.com/?p=1068
    2-factor authentication & writing PAM modules for Ubuntu
    KKKKale
        5
    KKKKale  
       Oct 14, 2013
    @lfzyx 觉得应该不是什么很难实现的东西吧。。。应该很好做。。。
    lfzyx
        6
    lfzyx  
    OP
       Oct 14, 2013   ❤️ 1
    @kennedy32 哈哈,我也是找到了这个
    kennedy32
        7
    kennedy32  
       Oct 14, 2013
    @lfzyx 这个不就是email方案么?应该还可以实现sms方案
    megaforce
        8
    megaforce  
       Oct 14, 2013
    我是这样做的:
    机器上只开放9019端口(用iptables做)
    启动nginx服务,监听9019端口。先经过http auth。
    server {
    listen 9010 default;
    return 401;
    }
    server {
    listen 9010;
    server_name myentry.xxx.xxx.cn;
    access_log /logs/access.log;
    error_log /logs/error.log;
    root /webdir;
    location / {
    auth_basic "Restricted";
    auth_basic_user_file /tmp/aaa;
    }

    }

    再到一个php界面,再做一次密码认证,成功后将用户的ip写到一个数据库。
    这里可以再用php做一个邮箱账号的认证,比如用户输入了xxx,php将一个code发到所对应的 [email protected] ,让用户输入 [email protected] 里面的code,才完成验证。



    后台程序每隔一定时间从数据库里面取出ip,用iptables添加该ip到ssh允许的端口。

    后台程序每隔一小时再将这个ip从iptables中去除掉
    gihnius
        9
    gihnius  
       Oct 14, 2013
    有钱的话直接上 token,(网银用的那种 token)
    ETiV
        10
    ETiV  
       Oct 14, 2013 via iPhone
    phonegap 写一个手机端的令牌App

    然后服务器上也部署一个算号、验证逻辑

    SSH登录执行个脚本,让输入用户名跟令牌

    如果不对了,就kill掉脚本的父进程(bash)
    lixm
        11
    lixm  
       Oct 14, 2013
    用pam模块,但是发邮件太慢了吧,等到收到邮件,token都过期了,用Google Authenticator就可以了,现在智能机那么普及了
    halfbloodrock
        12
    halfbloodrock  
       Oct 14, 2013
    可能理解的不太对,你两次验证的目的是证明登录人是合法的?

    如果这样的话,用kerberos。
    toctan
        13
    toctan  
       Oct 14, 2013
    run2
        14
    run2  
       Oct 14, 2013
    cloudzhou
        15
    cloudzhou  
       Oct 14, 2013
    对 openssh 做 patch,我做过了,为的是 git 认证,难度不大的
    solos
        16
    solos  
       Oct 14, 2013
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   801 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 20:27 · PVG 04:27 · LAX 13:27 · JFK 16:27
    ♥ Do have faith in what you're doing.