GaussDB-SFTP连接故障
GaussDB-SFTP连接故障
现象描述
- 云数据库GaussDB管理平台(TPOPS)安装包管理界面无法正常连接SFTP,错误提示“DBS.00109005:sftp服务器连接失败”。
- 命令行界面SFTP连接失败,错误提示为“client_loop: send disconnect: Broken pipe Connection closed”。
- 命令行界面SFTP连接失败,错误提示为“Permission denied, please try again”。
- 命令行界面SFTP连接失败,错误提示为“Connection closed. Connection closed”。
可能原因
- SFTP密码错误,数据库存储的SFTP密码与SFTP用户实际密码不一致。
- SFTP目录权限/属主错误,不符合要求。
- SFTP用户密码过期。
- SFTP服务状态异常。
定位思路
- 操作步骤以/data/docker-service为例,请在docker-service实际所在目录执行操作
- SFTP账户以sftpservice为例,实际以《云数据库GaussDB管理平台(TPOPS) 账户一览表 01》中SFTP账户为准。
- 以root用户登录云数据库GaussDB管理平台(TPOPS)SFTP主节点。
SFTP主节点为/data/docker-service/config/user_edit_file.conf中sftp_install_ip1属性对应值。
- 执行以下命令,查看SFTP服务状态。
systemctl status sftp
![]()
- 如果状态为active(正常),继续执行下述步骤。
- 如果状态不为active(正常),执行以下命令,重启SFTP服务。
如重启后SFTP状态仍然无法恢复正常,请联系技术支持。
- 执行以下命令,从元数据库获取SFTP密码。
获取SFTP加密密码后,需要联系技术支持取得解密后的SFTP密码。
gsql -h 127.0.0.1 -p {port} -q core -U core -W {password} -c "SELECT VALUE FROM core.dbs_system_parameter WHERE NAME = 'SFTP_PWD';"
其中:
- {port}需替换为元数据库端口号。
- {password}需替换为对应元数据库用户的密码。
密码获取途径为/data/docker-service/package/cloud/common/render/render_args.yml文件中core_passwd对应的值,获取加密密码后,联系技术支持取得解密后的密码。
- 执行以下命令,登录SFTP。
sftp -P 10022 sftpservice@{ip}
其中:
- {ip}需要替换为当前节点IP。
- 提示密码输入窗口后,需输入步骤3中获取的SFTP密码。
![]()
- 回显如上,表示登录成功,SFTP服务正常,且元数据库中存储SFTP密码正确。
- 如果登录失败,请依据不同回显,执行后续步骤。
- 根据回显结果,排查故障。
- 回显为“Permission denied, please try again”。
![]()
- 回显为“client_loop: send disconnect: Broken pipe Connection closed”。
![]()
- 执行以下命令,修改{sftp_path}目录属主及其父目录属主为root,权限为755。
chmod 755 {sftp_path}
其中{sftp_path}为/data/docker-service/config/user_edit_file.conf中sftp_path对应值。
- 再次执行步骤4,登录SFTP。
- 执行以下命令,修改{sftp_path}目录属主及其父目录属主为root,权限为755。
- 回显为“Connection closed. Connection closed”。
![]()
- 执行以下命令,查看密码有效期。
![]()
- 如密码有效期早于当前日期,则执行以下命令,修改密码有效期为永久。
- 再次执行步骤4,登录SFTP。
- 执行以下命令,查看密码有效期。
- 回显为“Permission denied, please try again”。
- 若以上步骤仍不能解决SFTP服务连接异常问题,请联系技术支持处理。







浙公网安备 33010602011771号