为什么我的 pam 适用于 sudo 而不适用于 ssh?

Why does my pam work for sudo and not for ssh?

我编写了一个 PAM 模块,当我们执行 $ sudo su 命令时,它会显示二维码。 PAM只显示二维码,不验证也不问密码

我尝试将此 PAM 与 ssh 一起使用,但屏幕上没有显示任何内容。有人知道为什么吗?

现在我有一半的二维码... 这个函数是在终端上绘制二维码:

void output_ansi(FILE * file, const struct qr_bitmap * bmp)
{
     const char * out[2] = {
            "  ",
            "3[7m  3[0m",
    };

    unsigned char * line;
    size_t x, y;

    line = bmp->bits;

    for (y = 0; y < bmp->height; ++y) {

        fprintf(file, "%d\n",y );

            for (x = 0; x < bmp->width; ++x) {

                    int mask = 1 << (x % CHAR_BIT);
                    int byte = line[x / CHAR_BIT];

                    fprintf(file, "%s", out[!!(byte & mask)]);
            }

            fputc('\n', file);

            line += bmp->stride;
    }
 }

但是通过在 for 循环中显示 y 的值,我注意到前 9 行没有打印出来...有人知道问题出在哪里吗?