我正在对一个查询数据库的ruby脚本进行故障排除,创建一个csv,并将其转发到另一台服务器。脚本所在的服务器是一个rhel盒子,运行ruby 1.87我相信。
以下是执行sftping的代码:
Net::SFTP.start(sftp_site, sftp_user, :password => sftp_pswd) do |sftp|
sftp.upload!(local_filepath,sftp_dir+filename)
end
执行脚本时,有一个好奇的消息在它爆炸之前:
Password Reset
Your password has expired. You are required to change your password to proceed.
此脚本适用于其他服务器,但不适用于此服务器。用户可以从此计算机上的提示中删除。 SELinux已被关闭,因为它可能有一些干扰。
无论如何,重点是,有没有人有任何想法?
答案 0 :(得分:1)
它似乎是一个宝石问题(虽然网络中的某些人可能已经发挥了一些我不知道的魔法)。生产服务器具有旧版本的net / ssh和net / sftp gems。它分别具有版本1.1.1和版本1.1.2,并将这些宝石升级到更高版本修复了该问题。
感谢所有提出建议的人!
答案 1 :(得分:0)
我会比较sshd守护进程设置(sshd_config),因为服务器中可能存在一个无法正常工作的问题。也许打开交互式键盘身份验证或类似的东西?