centos 9 stream下编译安装openssh-9.3.2p2版本出现“auth-pam.c:710: undefined reference to `pam_get_item‘”错误解决方法

问题描述:

以下所有关于pam的函数未定义的情况都适用

/usr/bin/ld: auth-pam.o: in function `sshpam_init':
openssh-9.3p2/build/../auth-pam.c:710: undefined reference to `pam_get_item'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:714: undefined reference to `pam_end'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:719: undefined reference to `pam_start'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:740: undefined reference to `pam_set_item'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:755: undefined reference to `pam_putenv'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:767: undefined reference to `pam_set_item'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:740: undefined reference to `pam_set_item'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:769: undefined reference to `pam_end'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:719: undefined reference to `pam_start'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:756: undefined reference to `pam_strerror'
/usr/bin/ld: auth-pam.o: in function `import_environments':
/openssh-9.3p2/build/../auth-pam.c:378: undefined reference to `pam_putenv'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:379: undefined reference to `pam_strerror'
/usr/bin/ld: auth-pam.o: in function `sshpam_query':
/openssh-9.3p2/build/../auth-pam.c:898: undefined reference to `pam_strerror'
/usr/bin/ld: auth-pam.o: in function `sshpam_cleanup':
/openssh-9.3p2/build/../auth-pam.c:674: undefined reference to `pam_set_item'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:686: undefined reference to `pam_end'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:682: undefined reference to `pam_setcred'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:677: undefined reference to `pam_close_session'
/usr/bin/ld: auth-pam.o: in function `do_pam_setcred':
/openssh-9.3p2/build/../auth-pam.c:1104: undefined reference to `pam_set_item'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1114: undefined reference to `pam_setcred'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1124: undefined reference to `pam_strerror'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1111: undefined reference to `pam_setcred'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1107: undefined reference to `pam_strerror'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1121: undefined reference to `pam_strerror'
/usr/bin/ld: auth-pam.o: in function `do_pam_chauthtok':
/openssh-9.3p2/build/../auth-pam.c:1193: undefined reference to `pam_set_item'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1199: undefined reference to `pam_chauthtok'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1201: undefined reference to `pam_strerror'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1196: undefined reference to `pam_strerror'
/usr/bin/ld: auth-pam.o: in function `do_pam_putenv':
/openssh-9.3p2/build/../auth-pam.c:1251: undefined reference to `pam_putenv'
/usr/bin/ld: auth-pam.o: in function `do_pam_account':
/openssh-9.3p2/build/../auth-pam.c:1085: undefined reference to `pam_acct_mgmt'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1086: undefined reference to `pam_strerror'
/usr/bin/ld: auth-pam.o: in function `sshpam_thread':
/openssh-9.3p2/build/../auth-pam.c:493: undefined reference to `pam_get_item'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:519: undefined reference to `pam_set_item'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:523: undefined reference to `pam_authenticate'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:534: undefined reference to `pam_chauthtok'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:583: undefined reference to `pam_strerror'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:563: undefined reference to `pam_getenvlist'
/usr/bin/ld: auth-pam.o: in function `do_pam_session':
/openssh-9.3p2/build/../auth-pam.c:1212: undefined reference to `pam_set_item'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1217: undefined reference to `pam_open_session'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1223: undefined reference to `pam_strerror'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1215: undefined reference to `pam_strerror'
/usr/bin/ld: auth-pam.o: in function `sshpam_auth_passwd':
/openssh-9.3p2/build/../auth-pam.c:1370: undefined reference to `pam_set_item'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1376: undefined reference to `pam_authenticate'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1386: undefined reference to `pam_strerror'
/usr/bin/ld: /openssh-9.3p2/build/../auth-pam.c:1373: undefined reference to `pam_strerror'
/usr/bin/ld: auth-pam.o: in function `fetch_pam_environment':
/openssh-9.3p2/build/../auth-pam.c:1266: undefined reference to `pam_getenvlist'

 

解决方法:

1、安装必要依赖:

yum install pam*

# 主要是pam-devel的包

2、修改Makefile文件

vim Makefile

在大概51行

LIBS=-lcrypto -ldl -lutil -lz -lcrypt -lresolv -lsystemd, 添加-lpam

# 添加编译依赖  -lpam
LIBS=-lcrypto -ldl -lutil -lz -lcrypt -lresolv -lsystemd -lpam

3、修改 auth-pam.c文件

在头部添加引用:

vim  auth-pam.c

#include <security/pam_appl.h>

 

然后make即可通过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小果运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值