当他们在谈论 sftp 连接失败的时候,他们在谈论什么

一、引言

最近在工作中遇到了一个匪夷所思的问题:

生产上有这么一个每日运行的定时任务:
它作为 sftp 客户端连接到某另一生产环境,在那个生成环境中指定位置放置一个每日定时生成的数据文件。

问题来了,突然从某一天开始,后面的每一次都提示 sftp 连接失败。

遇到这个问题,我首先想到的是,是不是另一个生产环境的 sftp 端口被墙了或者挂掉了(他们没使用默认的 22 端口),于是乎我首先做的就是 telnet:

$ telnet xxx.xxx.xxx.xxx yyy

其中 xxx.xxx.xxx.xxx 就是 sftp 服务端的 ip 地址,yyy 就是他们提供给我们的 sftp 端口。

结果发现 telnet 是通的。

这就奇怪了,sftp 之前都是正常,突然某一天开始,就突然不行了,但是对方的 sftp 服务和端口都是正常的。

匪夷所思啊 T_T

二、解决

最后问题的解决是非常啼笑皆非的:

对方在分配给我们的 sftp linux 用户的时候,设置了默认的用户密码 90 天,90 天过后,这个密码就自动失效,于是 sftp 就失败了。

问题的解决就是这么简单:

$ chage -E 2100-12-12 foo

上述 chage 命令 -E 指定 foo 用户的 密码在 2100-12-12 才会过期,该问题解决。

用户密码过期的原因有些难以想到,因此特此记录下,希望能给遇到同样问题的朋友一些帮助:)

你可能感兴趣的:(linux)