加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – Capistrano 3.0 – 现在如何安全地提示输入密码?

发布时间:2020-12-16 19:06:01 所属栏目:百科 来源:网络整理
导读:在3.0之前有一种方法可以做到这一点: # ...set :mysql_password,proc { Capistrano::CLI.password_prompt "Gimme remote database server password. Don't worry,I won't tell anyone: " }# ...namespace :db do desc 'Dump remote database' task :dump do
在3.0之前有一种方法可以做到这一点:
# ...
set :mysql_password,proc { Capistrano::CLI.password_prompt "Gimme remote database server password. Don't worry,I won't tell anyone: " }
# ...

namespace :db do
  desc 'Dump remote database'
  task :dump do
    run "mysqldump -u #{mysql_user} -p #{mysql_database} > ~/#{mysql_database}.sql" do |channel,stream,data|
      if data =~ /^Enter password:/
        channel.send_data "#{mysql_password}n"
      end
    end
  end
end

它会提示输入密码,在您键入时不会显示密码,并且在日志和输出中不会留下任何痕迹.

现在,从3.0开始,我找到了唯一的方法:

# ...

namespace :db do
  desc 'Dump remote database'
  task :dump do
    ask :mysql_password,nil
    on roles(:db) do
      execute "mysqldump -u#{fetch :mysql_user} -p#{fetch :mysql_password} #{fetch :mysql_database} > ~/#{fetch :mysql_database}.sql"
    end
  end
end

它完成工作,但到处显示密码.

有没有人在3.0中找到一种安全的密码提示方式?谢谢!

解决方法

目前,no,可能是下一个次要版本(3.2):

It would be helpful if ask() had an option to not echo input,similar
to the previous Capistrano::CLI.password_prompt

Either way,it’ll be a 3.2 thing.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读