OpenSSL、OpenSSH一键升级脚本

  • A+
所属分类:命令脚本 安全整改

上周六早上被最近发售的PS4《黑暗之魂重制版》里的各种杂鱼虐到怀疑人生,为调节心态情绪,静心写下OpenSSL、OpenSSH一键升级脚本,方便日后VPS批量升级。脚本代码没什么技术含量,各种判断和命令堆叠,有需要的朋友可以参考。使用前请务必在虚拟机进行测试,确保没问题后再考虑在承载业务的服务器上升级。

初次上传代码到GitHub,觉得挺新鲜的:https://github.com/wanghualang/update-openssl-openssh

升级过程

升级脚本自用为主,因操作系统环境各异、个人操作水平不同等等原因,升级脚本未必适合所有用户。简易录制一个全程升级过程,演示用的操作系统为全新安装的RHEL 7.5,软件升级完毕后会重新登陆SSH,以验证脚本代码的可用性。

脚本代码

  1. #!/bin/bash  
  2. clear  
  3.   
  4. ####### 通用代码 #######  
  5.   
  6. #脚本变量  
  7. #编译升级更新版本的源码包,可以根据软件官网版本号修改xx_version;  
  8. date=`date "+%Y%m%d"`  
  9. zlib_version="zlib-1.2.11"  
  10. dropbear_version="dropbear-2018.76"  
  11. openssl_version="openssl-1.0.2o"  
  12. openssh_version="openssh-7.7p1"  
  13. zlib_download="http://zlib.net/$zlib_version.tar.gz"  
  14. dropbear_download="https://matt.ucc.asn.au/dropbear/releases/$dropbear_version.tar.bz2"  
  15. openssl_download="https://www.openssl.org/source/$openssl_version.tar.gz"  
  16. openssh_download="https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/$openssh_version.tar.gz"  
  17. system_version=`cat /etc/redhat-release`  
  18. rhel4_version=`cat /etc/redhat-release |grep "release 4"|wc -l`  
  19. rhel5_version=`cat /etc/redhat-release |grep "release 5"|wc -l`  
  20. rhel6_version=`cat /etc/redhat-release |grep "release 6"|wc -l`  
  21. rhel7_version=`cat /etc/redhat-release |grep "release 7"|wc -l`  
  22. gcc_intall_status==`rpm -qa | grep gcc | wc -l`  
  23. gcc_c_intall_status==`rpm -qa | grep gcc-c++ | wc -l`  
  24. pam_devel_intall_status==`rpm -qa | grep pam-devel | wc -l`  
  25. openssl_rpm_status=`rpm -qa | grep openssl | wc -l`  
  26. openssh_rpm_status=`rpm -qa | grep openssh | wc -l`  
  27. telnet_rpm_status=`rpm -qa | grep telnet-server | wc -l`  
  28. openssh_running_status=`ps aux | grep sshd | grep -v grep |wc -l`  
  29. dropbear_running_status=`netstat -tunlp | egrep "0:6666" | wc -l`  
  30. telnet_running_status=`netstat -tunlp | egrep "0:23" | wc -l`  
  31.   
  32. #使用说明  
  33. echo -e "\033[33m《一键升级OpenSSL、OpenSSH脚本》使用说明\033[0m"  
  34. echo ""  
  35. echo "A.一键升级脚本仅适用于RHEL/CentOS操作系统,支持4.x、5.x、6.x、7.x各系统版本;"  
  36. echo "B.必须切换为Root管理员用户运行脚本,并且确保本地或者网络yum软件源可以正常使用;"  
  37. echo "C.RHEL4.x-5.x操作系统会临时安装Telnet,通信端口为23,升级结束后会引导卸载;"  
  38. echo "D.RHEL6.x-7.x操作系统会临时安装DropBear,通信端口为6666,升级结束后会引导卸载;"  
  39. echo "E.本机旧版本的OpenSSL、OpenSSH、Lib库文件全部备份在/tmp/backup_$date文件夹。"  
  40. echo ""  
  41.   
  42. #判断操作系统  
  43. echo "当前本机操作系统版本:"$system_version  
  44. echo ""  
  45.   
  46. #最新软件版本  
  47. echo "当前官网最新软件版本:"$openssl_version、$openssh_version  
  48. echo ""  
  49.   
  50. #检查当前用户是否为root  
  51. if [ $(id -u) != "0" ]; then  
  52. echo "当前用户为普通用户,必须使用root用户运行脚本,五秒后自动退出。"  
  53. echo ""  
  54. sleep 5  
  55. exit  
  56. fi  
  57.   
  58. #禁用SElinux  
  59. setenforce 0 > /dev/null 2>&1  
  60.   
  61. #禁用防火墙  
  62. service iptables stop > /dev/null 2>&1  
  63. service ip6tables stop > /dev/null 2>&1  
  64.   
  65. ####### 通用代码 #######  
  66.   
  67. ####### 升级软件 #######  
  68. function update() {  
  69. echo -e "\033[33m开始升级OpenSSL、OpenSSH\033[0m"  
  70. echo ""  
  71.   
  72. #解压软件源码包  
  73. cd /tmp  
  74. wget --no-check-certificate $zlib_download > /dev/null 2>&1  
  75. wget --no-check-certificate $dropbear_download > /dev/null 2>&1  
  76. wget --no-check-certificate $openssl_download > /dev/null 2>&1  
  77. wget --no-check-certificate $openssh_download > /dev/null 2>&1  
  78. tar xzf $zlib_version.tar.gz  
  79. tar xjf $dropbear_version.tar.bz2  
  80. tar xzf $openssh_version.tar.gz  
  81. tar xzf $openssl_version.tar.gz  
  82. if [ -e /tmp/$zlib_version ] && [ -e /tmp/$dropbear_version ] && [ -e /tmp/$openssh_version ] && [ -e /tmp/$openssl_version ];then  
  83. echo -e "解压软件源码包成功" "\033[32m Success\033[0m"  
  84. else  
  85. echo -e "解压软件源码包失败,五秒后自动退出脚本" "\033[31m Failure\033[0m"  
  86. echo ""  
  87. sleep 5  
  88. exit  
  89. fi  
  90. echo ""  
  91.   
  92. #安装软件依赖包  
  93. yum -y install gcc gcc-c++ pam-devel > /dev/null 2>&1  
  94. cd /tmp  
  95. tar xzf $zlib_version.tar.gz  
  96. cd /tmp/$zlib_version  
  97. ./configure --shared > /dev/null 2>&1  
  98. make > /dev/null 2>&1  
  99. make install > /dev/null 2>&1  
  100. if [ $gcc_intall_status != 0 ] && [ $gcc_c_intall_status != 0 ] && [ $pam_devel_intall_status != 0 ] && [ -e /usr/local/lib/libz.so ];then  
  101. echo -e "安装软件依赖包成功" "\033[32m Success\033[0m"  
  102. else  
  103. echo -e "安装软件依赖包失败,五秒后自动退出脚本" "\033[31m Failure\033[0m"  
  104. echo ""  
  105. sleep 5  
  106. exit  
  107. fi  
  108. echo ""  
  109.   
  110. #临时安装远程软件  
  111. if [ $rhel4_version == 1 ] || [ $rhel5_version == 1 ];then  
  112. yum -y install telnet-server xinetd > /dev/null 2>&1  
  113. sed -i '/disable/d' /etc/xinetd.d/telnet  
  114. sed -i '/log_on_failure/a disable  = no' /etc/xinetd.d/telnet  
  115. sed -i '/disable/d' /etc/xinetd.d/telnet  
  116. sed -i '/log_on_failure/a disable  = no' /etc/xinetd.d/krb5-telnet  
  117. mv /etc/securetty /etc/securetty.bak  
  118. service xinetd restart > /dev/null 2>&1  
  119. echo -e "启动Telnet服务成功" "\033[32m Success\033[0m"  
  120. echo ""  
  121. fi  
  122. if [ $rhel6_version == 1 ] || [ $rhel7_version == 1 ];then  
  123. cd /tmp  
  124. tar xjf $dropbear_version.tar.bz2  
  125. cd $dropbear_version  
  126. ./configure > /dev/null 2>&1  
  127. make > /dev/null 2>&1  
  128. make install > /dev/null 2>&1  
  129. mkdir /etc/dropbear  
  130. /usr/local/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key > /dev/null 2>&1  
  131. /usr/local/bin/dropbearkey -t rsa -s 4096 -f /etc/dropbear/dropbear_rsa_host_key > /dev/null 2>&1  
  132. /usr/local/sbin/dropbear -p 6666 > /dev/null 2>&1  
  133. echo -e "启动DropBear服务成功" "\033[32m Success\033[0m"  
  134. echo ""  
  135. fi  
  136.   
  137. #备份旧版本lib  
  138. service sshd stop > /dev/null 2>&1  
  139. mkdir /tmp/backup_$date  
  140. if [ $(getconf WORD_BIT) = '32' ] && [ $(getconf LONG_BIT) = '64' ] ; then  
  141. ls /lib > /tmp/backup_$date/old_lib_list.txt  
  142. ls /lib64 > /tmp/backup_$date/old_lib64_list.txt  
  143. tar czf /tmp/backup_$date/lib_backup.tar.gz /lib > /dev/null 2>&1  
  144. tar czf /tmp/backup_$date/lib64_backup.tar.gz /lib64 > /dev/null 2>&1  
  145. else  
  146. ls /lib > /tmp/backup_$date/old_lib_list.txt  
  147. tar czf /tmp/backup_$date/lib_backup.tar.gz /lib > /dev/null 2>&1  
  148. fi  
  149.   
  150. #备份旧版本openssl  
  151. if  [ $openssl_rpm_status != 0 ];then  
  152. rpm -ql `rpm -qa | egrep openssl` > /tmp/backup_$date/old_openssl_list.txt  
  153. tar czf /tmp/backup_$date/openssl_backup.tar.gz -T /tmp/backup_$date/old_openssl_list.txt > /dev/null 2>&1  
  154. else  
  155. find / -name *ssl* > /tmp/backup_$date/old_openssl_list.txt  
  156. tar czf /tmp/backup_$date/openssl_backup.tar.gz -T /tmp/backup_$date/old_openssl_list.txt > /dev/null 2>&1  
  157. fi  
  158.   
  159. #备份旧版本openssh  
  160. if [ $openssh_rpm_status != 0 ];then  
  161. rpm -ql `rpm -qa | egrep openssh` > /tmp/backup_$date/old_openssh_list.txt  
  162. tar czf /tmp/backup_$date/openssh_backup.tar.gz -T /tmp/backup_$date/old_openssh_list.txt > /dev/null 2>&1  
  163. else  
  164. find / -name *ssh* > /tmp/backup_$date/old_openssh_list.txt  
  165. tar czf /tmp/backup_$date/openssh_backup.tar.gz -T /tmp/backup_$date/old_openssh_list.txt > /dev/null 2>&1  
  166. fi  
  167.   
  168. #检查备份结果  
  169. if [ $(getconf WORD_BIT) = '32' ] && [ $(getconf LONG_BIT) = '64' ] && [ -e /tmp/backup_$date/lib_backup.tar.gz ] && [ -e /tmp/backup_$date/lib64_backup.tar.gz ] && [ -e /tmp/backup_$date/openssl_backup.tar.gz ] && [ -e /tmp/backup_$date/openssh_backup.tar.gz ];then  
  170. echo -e "备份旧版本程序成功" "\033[32m Success\033[0m"  
  171. fi  
  172. if [ $(getconf WORD_BIT) = '32' ] && [ $(getconf LONG_BIT) = '32' ] && [ -e /tmp/backup_$date/lib_backup.tar.gz ] && [ -e /tmp/backup_$date/openssl_backup.tar.gz ] && [ -e /tmp/backup_$date/openssh_backup.tar.gz ];then  
  173. echo -e "备份旧版本程序成功" "\033[32m Success\033[0m"  
  174. fi  
  175. echo ""  
  176.   
  177. #卸载旧版本openssl  
  178. if [ -e /usr/bin/openssl ];then  
  179. mv /usr/bin/openssl /usr/bin/openssl.bak_$date  
  180. fi  
  181. if [ -e /usr/lib/openssl ];then  
  182. mv /usr/lib/openssl /usr/lib/openssl.bak_$date  
  183. fi  
  184. if [ -e /usr/lib64/openssl ];then  
  185. mv /usr/lib64/openssl /usr/lib64/openssl.bak_$date  
  186. fi  
  187.   
  188. #卸载旧版本openssh  
  189. if  [ $openssh_rpm_status -ne 0 ];then  
  190. rpm -e `rpm -qa | grep openssh` --nodeps  --allmatches > /dev/null 2>&1  
  191. else  
  192. mv /usr/bin/scp /usr/bin/scp.bak_$date > /dev/null 2>&1  
  193. mv /usr/bin/sftp /usr/bin/sftp.bak_$date > /dev/null 2>&1  
  194. mv /usr/bin/ssh /usr/bin/ssh.bak_$date > /dev/null 2>&1  
  195. mv /usr/bin/ssh-keyscan /usr/bin/ssh-keyscan.bak_$date > /dev/null 2>&1  
  196. mv /usr/bin/ssh-add /usr/bin/ssh-add.bak_$date > /dev/null 2>&1  
  197. mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak_$date > /dev/null 2>&1  
  198. mv /usr/bin/ssh-agent /usr/bin/ssh-agent.bak_$date > /dev/null 2>&1  
  199. mv /usr/libexec/ssh-pkcs11-helper /usr/libexec/ssh-pkcs11-helper.bak_$date > /dev/null 2>&1  
  200. mv /usr/libexec/ssh-keysign /usr/libexec/ssh-keysign.bak_$date > /dev/null 2>&1  
  201. mv /usr/libexec/sftp-server /usr/libexec/sftp-server.bak_$date > /dev/null 2>&1  
  202. mv /usr/sbin/sshd /usr/sbin/sshd.bak_$date > /dev/null 2>&1  
  203. mv /etc/ssh /etc/ssh.bak_$date > /dev/null 2>&1  
  204. mv /etc/init.d/sshd /etc/init.d/sshd.bak_$date > /dev/null 2>&1  
  205. fi  
  206.   
  207. #检查卸载结果  
  208. if [ $openssh_rpm_status -ne 0 ] && [ -e /usr/bin/openssl.bak ];then  
  209. echo -e "卸载旧版本程序失败" "\033[31m Failure\033[0m"  
  210. else  
  211. echo -e "卸载旧版本程序成功" "\033[32m Success\033[0m"  
  212. fi  
  213. echo ""  
  214.   
  215. #编译安装OpenSSL  
  216. cd /tmp  
  217. tar xzf $openssl_version.tar.gz  
  218. cd $openssl_version  
  219. ./config -fPIC --prefix=/usr enable-shared > /dev/null 2>&1  
  220. if [ $? -eq 0 ];then  
  221. make > /dev/null 2>&1  
  222. make install > /dev/null 2>&1  
  223. else  
  224. echo -e "编译安装OpenSSL失败,五秒后自动退出脚本" "\033[31m Failure\033[0m"  
  225. echo ""  
  226. sleep 5  
  227. exit  
  228. fi  
  229. if [ -e /usr/bin/openssl ];then  
  230. echo -e "编译安装OpenSSL成功" "\033[32m Success\033[0m"  
  231. fi  
  232. echo ""  
  233.   
  234. #编译安装OpenSSH  
  235. cd /tmp  
  236. tar xzf $openssh_version.tar.gz    
  237. cd $openssh_version  
  238. ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-ssl-engine --disable-etc-default-login > /dev/null 2>&1  
  239. if [ $? -eq 0 ];then  
  240. make > /dev/null 2>&1  
  241. make install > /dev/null 2>&1  
  242. else  
  243. echo -e "编译安装OpenSSH失败,五秒后自动退出脚本" "\033[31m Failure\033[0m"  
  244. echo ""  
  245. sleep 5  
  246. exit  
  247. fi  
  248. if [ -e /usr/sbin/sshd ];then  
  249. echo -e "编译安装OpenSSH成功" "\033[32m Success\033[0m"  
  250. fi  
  251. echo ""  
  252.   
  253. #启动OpenSSH  
  254. cp -rf /tmp/$openssh_version/contrib/redhat/sshd.init /etc/init.d/sshd  
  255. cp -rf /tmp/$openssh_version/contrib/redhat/sshd.pam /etc/pam.d/sshd  
  256. chmod +x /etc/init.d/sshd  
  257. chkconfig --add sshd  
  258. sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config  
  259. if [ $rhel7_version == 1 ];then  
  260. chmod 600 /etc/ssh/ssh_host_rsa_key  
  261. chmod 600 /etc/ssh/ssh_host_ecdsa_key  
  262. chmod 600 /etc/ssh/ssh_host_ed25519_key  
  263. fi  
  264. service sshd start > /dev/null 2>&1  
  265. if [ $openssh_running_status -ne 0 ];then  
  266. echo -e "启动OpenSSH服务成功" "\033[32m Success\033[0m"  
  267. else  
  268. echo -e "启动OpenSSH服务失败,五秒后自动退出脚本" "\033[31m Failure\033[0m"  
  269. sleep 5  
  270. exit  
  271. fi  
  272. echo ""  
  273.   
  274. #删除软件源码包  
  275. rm -rf /tmp/$openssh_version  
  276. rm -rf /tmp/$openssl_version  
  277. rm -rf /tmp/$zlib_version  
  278. rm -rf /tmp/$dropbear_version  
  279. rm -rf /tmp/$openssh_version.tar.gz  
  280. rm -rf /tmp/$openssl_version.tar.gz  
  281. rm -rf /tmp/$zlib_version.tar.gz  
  282. rm -rf /tmp/$dropbear_version.tar.bz2  
  283. if [ -e /tmp/$openssh_version ] && [ -e /tmp/$openssl_version ] && [ -e /tmp/$openssl_version ] && [ -e /tmp/$zlib_version ] && [ -e /tmp/$openssh_version.tar.gz ] && [ -e /tmp/$openssl_version.tar.gz ] && [ -e /tmp/$zlib_version.tar.gz ] && [ -e /tmp/$dropbear_version.tar.gz ];then  
  284. echo -e "删除软件源码包失败" "\033[31m Failure\033[0m"  
  285. else  
  286. echo -e "删除软件源码包成功" "\033[32m Success\033[0m"  
  287. fi  
  288. echo ""  
  289.   
  290. #升级完成  
  291. echo -e "\033[33mOpenSSH、OpenSSL升级成功,软件版本如下:\033[0m"  
  292. echo ""  
  293. openssl version  
  294. echo ""  
  295. ssh -V  
  296. echo ""  
  297.   
  298. #引导卸载telnet  
  299. if [ $rhel4_version == 1 ] || [ $rhel5_version == 1 ];then  
  300. echo -e "\033[33m为防止OpenSSH升级失败导致无法远程登录,脚本已临时安装Telnet\033[0m"  
  301. echo ""  
  302. echo -e "\033[33mOpenSSH升级完成后,建议登录测试,确保没有问题后可卸载Telnet\033[0m"  
  303. echo ""  
  304. echo "1: 卸载Telnet"  
  305. echo ""  
  306. echo "2: 退出脚本"  
  307. echo ""  
  308. read -p  "请输入对应数字后按回车键: " uninstall  
  309. if [ "$uninstall" == "1" ];then  
  310. clear  
  311. echo -e "\033[33m开始卸载Telnet\033[0m"  
  312. echo ""  
  313. yum -y remove telnet-server > /dev/null 2>&1  
  314. service xinetd stop > /dev/null 2>&1  
  315. mv /etc/securetty.bak /etc/securetty  
  316. echo -e "卸载Telnet成功" "\033[32m Success\033[0m"  
  317. else  
  318. exit  
  319. fi  
  320. fi  
  321.   
  322. #引导卸载dropbear  
  323. if [ $rhel6_version == 1 ] || [ $rhel7_version == 1 ];then  
  324. echo -e "\033[33m为防止OpenSSH升级失败导致无法远程登录,脚本已临时安装DropBear\033[0m"  
  325. echo ""  
  326. echo -e "\033[33mOpenSSH升级完成后,建议登录测试,确保没有问题后可卸载DropBear\033[0m"  
  327. echo ""  
  328. echo "1: 卸载DropBear"  
  329. echo ""  
  330. echo "2: 退出脚本"  
  331. echo ""  
  332. read -p  "请输入对应数字后按回车键: " uninstall  
  333. if [ "$uninstall" == "1" ];then  
  334. clear  
  335. echo -e "\033[33m开始卸载DropBear\033[0m"  
  336. echo ""  
  337. ps aux | grep dropbear | grep -v grep | awk '{print $2}' | xargs kill -9  
  338. find /usr/local/ -name dropbear* | xargs rm -rf  
  339. rm -rf /etc/dropbear  
  340. rm -rf /var/run/dropbear.pid  
  341. echo -e "卸载DropBear成功" "\033[32m Success\033[0m"  
  342. fi  
  343. fi  
  344. echo ""  
  345. }  
  346. ####### 升级软件 #######  
  347.   
  348. ####### 脚本菜单 #######  
  349. echo -e "\033[36m1: 升级软件\033[0m"  
  350. echo ""  
  351. echo -e "\033[36m2: 退出脚本\033[0m"  
  352. echo ""  
  353. read -p  "请输入对应数字后按回车开始执行脚本: " install  
  354. if [ "$install" == "1" ];then  
  355. clear  
  356. update  
  357. else  
  358. echo ""  
  359. exit  
  360. fi  
  361. ####### 脚本菜单 #######  
  • 微信赞助网站
  • weinxin
  • 支付宝赞助网站
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:14   其中:访客  7   博主  7

    • 11111111 浙江省温州市 电信

      开始升级OpenSSL、OpenSSH

      tar (child): dropbear-2018.76.tar.bz2: Cannot open: No such file or directory
      tar (child): Error is not recoverable: exiting now
      tar: Child returned status 2
      tar: Error is not recoverable: exiting now
      解压软件源码包失败,五秒后自动退出脚本 Failure

        • 王花郎 站长 广东省韶关市 电信

          @11111111 dropbear软件官网估计是在维护,导致无法正常下载dropbear-2018.76.tar.bz2到本地。
          ~
          解决方案,二选一即可:
          1.等待dropbear软件官网恢复正常,稍后再执行脚本;
          2.修改脚本第14行,把文件链接修改为:https://download.wanghualang.com/dropbear-2018.76.tar.bz2

            • 11111111 浙江省温州市 电信

              @王花郎 开始升级OpenSSL、OpenSSH

              解压软件源码包成功 Success

              安装软件依赖包成功 Success

              启动DropBear服务成功 Success

              备份旧版本程序成功 Success

              卸载旧版本程序成功 Success

              编译安装OpenSSL成功 Success

              编译安装OpenSSH失败,五秒后自动退出脚本 Failure

                • 王花郎 站长 广东省韶关市 电信

                  @11111111 进入OpenSSH源码目录,执行下面的命令,看看报什么错误?
                  ./configure –prefix=/usr –sysconfdir=/etc/ssh –with-pam –with-zlib –with-md5-passwords –with-ssl-engine –disable-etc-default-login

                    • 11111111 浙江省温州市 电信

                      @王花郎 下面
                      configure: WARNING: you should use –build, –host, –target
                      configure: WARNING: invalid host type: –with-pam
                      configure: WARNING: you should use –build, –host, –target
                      configure: WARNING: invalid host type: –with-zlib
                      configure: WARNING: you should use –build, –host, –target
                      configure: WARNING: invalid host type: –with-md5-passwords
                      configure: WARNING: you should use –build, –host, –target
                      configure: WARNING: invalid host type: –with-ssl-engine
                      configure: WARNING: you should use –build, –host, –target
                      configure: WARNING: invalid host type: –disable-etc-default-login
                      checking for –with-pam-gcc… no
                      checking for gcc… gcc
                      checking whether the C compiler works… yes
                      checking for C compiler default output file name… a.out
                      checking for suffix of executables…
                      checking whether we are cross compiling… no
                      checking for suffix of object files… o
                      checking whether we are using the GNU C compiler… yes
                      checking whether gcc accepts -g… yes
                      checking for gcc option to accept ISO C89… none needed
                      checking build system type… Invalid configuration `–with-pam’: machine `–with’ not recognized
                      configure: error: /bin/sh ./config.sub –with-pam failed

                        • 王花郎 站长 广东省韶关市 电信

                          @11111111 确保终端是英文输入法状态,尝试手动输入一次配置命令,不要复制,注意空格:
                          ./configure –prefix=/usr –sysconfdir=/etc/ssh –with-pam –with-zlib –with-md5-passwords –with-ssl-engine –disable-etc-default-login

                • xyz 江苏省扬州市 移动

                  用的是CentOS 7.5,可以正常安装成功。正常显示了安装的版本(默认),但在用Putty连接时,提示拒绝访问?请问是什么原因。

                    • 王花郎 站长 广东省韶关市 电信

                      @xyz 确保SElinux已禁用,接着再尝试手动执行:
                      chmod 600 /etc/ssh/ssh_host_rsa_key
                      chmod 600 /etc/ssh/ssh_host_ecdsa_key
                      chmod 600 /etc/ssh/ssh_host_ed25519_key

                        • xyz 江苏省扬州市 移动

                          @王花郎 OK了,应该是SELinux的问题。原来没有关闭。谢谢。
                          不过,关闭这个完全性也是一个挑战哦。

                            • 王花郎 站长 广东省韶关市 电信

                              @xyz SElinux要摸熟有点难度呢,反正我是玩不转。

                        • 13122024 广东省惠州市 电信

                          同样也是在安装的时候出错,提示的是找不到configure文件或目录

                            • 王花郎 站长 广东省深圳市 电信

                              @13122024 这个提示是什么阶段出现的?如果是在“安装软件依赖包”阶段出现的,你检查一下zlib源码包是否下载到/tmp目录了?使用脚本要确保网络通畅,能正常访问外网。

                            • OpenSSH 浙江省温州市 电信

                              使用脚本 centos6.9 OpenSSH 5.3版本 升级 失败
                              编译安装OpenSSL成功 Success

                              编译安装OpenSSH失败,五秒后自动退出脚本 Failure

                                • 王花郎 站长 广东省韶关市 电信

                                  @OpenSSH 手动进入SSH源码目录,执行./configure –prefix=/usr –sysconfdir=/etc/ssh –with-pam –with-zlib –with-md5-passwords –with-ssl-engine –disable-etc-default-login,看看报什么错。