自建的Gitlab服务器在阿里云上,阿里云默认屏蔽了对外的25端口连接。每添加新用户,就会反馈重置密码的邮件收不到。解决方法是登录到服务器上用mailq
命令找到邮件ID,接着用postcat命令找出链接发给对方完成密码重置工作。
这次的新用户比较奇怪(也可能是gitlab升级),使用postcat获取到的链接无效,无法重置密码。为了让其正常使用,先从管理员身份切换过去并添加SSH公钥。
事后为了解决这个问题,暂时想到两个办法:1. 使用海外的服务器;2. 使用465等SSL加密端口。第一个方法作为备选方案,优先考虑了第二种方案。遗憾的是按照官方文档配置,Gitlab不屈不挠的使用sendmail而非SMTP方式发送邮件。折腾了一个多小时还没弄好,有点心累。
快要放弃的时候转念一想,我需要的是重置密码功能,邮件先放一边吧!于是开始寻找重置用户密码方法,该过程可谓是轻松加愉快,很快就重置了用户的密码。
具体步骤如下:
# 进入gitlab控制台 gitlab-rails console # 找出用户并重置密码 user = User.find_by(email: 'example@xxx.com') user.password='1234ABCD' user.password_confirmation='1234ABCD' user.save! # 退出控制台 exit
输出内容示例如下:
[root@localhost gitlab]# gitlab-rails console Loading production environment (Rails 4.2.8) irb(main):001:0> user = User.find_by(email: 'example@xxx.com') => # irb(main):002:0> user.password='1234ABCD' => "1234ABCD" irb(main):003:0> user.password_confirmation='1234ABCD' => "1234ABCD" irb(main):004:0> user.save! Enqueued ActionMailer::DeliveryJob (Job ID: ea0072d2-5cd5-4b6e-bdad-fa938d977e47) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", gid://gitlab/User/12 => true
参考
-
https://docs.gitlab.com/omnibus/settings/smtp.html#testing-the-smtp-configuration
-
https://stackoverflow.com/questions/24448475/gitlab-password-reset-in-rails
原文链接:https://www.qiquanji.com/post/4877.html
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
微信扫码关注
更新实时通知