You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用lftp通过SFTP连接EDI服务器时登录失败问题求助(SAP外部命令场景)

lftp通过SFTP连接EDI服务器时登录失败问题求助(SAP外部命令场景)

各位大佬好,我现在碰到个棘手的问题:需要通过SFTP连接EDI服务器拉取数据,这个服务器比较特殊——文件被读取后会自动删除,所以一开始想把SFTP目录挂载到Linux文件系统的方案直接放弃了,因为mv命令根本来不及完成文件复制。

我不想用用户名密码做认证,所以生成了SSH密钥发给同事配置好了。然后写了下面的shell脚本,打算在OS层面执行(后续要作为SAP外部命令调用):

#!/bin/bash
HOST=x.x.x.x
PORT=2022
USER=TEST_USER_NAME
KEYFILE=/home/srvadm/.ssh/id_rsa
REMOTE_DIR=From FM
LOCAL_DIR=/output/dev/

eval $(ssh-agent -s)
ssh-add $KEYFILE

lftp -u $USER sftp://$HOST:$Port "set sftp:connect-program 'sh -a -x'"<<EOF
cd $REMOTE_DIR
lcd $LOCAL_DIRECTORY
mget *.csv
bye
EOF

但执行后直接报错了,错误信息如下:

Agent pid 18964
Identity added: /home/srvadm/.ssh/id_rsa (srvadm@myserver-2024-02-08)
open: GetPass() failed -- assume anonymous login
cd: Login failed: Password required
ls: ls -l: Log...

明明已经把密钥加到ssh-agent里了,但lftp还是要求输入密码,有没有大佬能帮忙排查下问题出在哪?


可能的问题点及解决方案尝试:

  • 变量大小写/名称错误:脚本里的$Port是小写,但前面定义的端口变量是大写PORT=2022,这会导致端口参数未正确传递;另外$LOCAL_DIRECTORY应该是$LOCAL_DIR,变量名写错会导致本地目录切换失败。先把这些变量名统一修正。
  • SFTP连接程序参数错误:sh -a -x是完全错误的,应该改成ssh -a -x——-a禁用代理转发,-x禁用X11转发,这才是符合ssh连接逻辑的参数。
  • lftp密钥认证配置缺失:lftp默认可能不会自动调用ssh-agent的密钥,需要显式启用ssh-agent支持,或者指定密钥文件。可以在lftp会话里添加set sftp:agent 1强制使用ssh-agent,也可以用set sftp:key-file $KEYFILE直接指定密钥路径。
  • 带空格的目录名处理:远程目录From FM包含空格,cd命令执行时会被解析成两个参数,需要用引号把目录名括起来,比如cd "$REMOTE_DIR"。

修改后的脚本参考:

#!/bin/bash
HOST=x.x.x.x
PORT=2022
USER=TEST_USER_NAME
KEYFILE=/home/srvadm/.ssh/id_rsa
REMOTE_DIR="From FM"
LOCAL_DIR=/output/dev/

# 启动ssh-agent并加载密钥
eval $(ssh-agent -s)
ssh-add $KEYFILE

# 修正参数后的lftp命令
lftp -u $USER sftp://$HOST:$PORT <<EOF
set sftp:agent 1
set sftp:connect-program 'ssh -a -x'
cd "$REMOTE_DIR"
lcd "$LOCAL_DIR"
mget *.csv
bye
EOF

# 可选:执行完毕后关闭ssh-agent,避免残留进程
ssh-agent -k

另外建议先手动执行ssh -i $KEYFILE -p $PORT $USER@$HOST,确认密钥能正常登录服务器,排除同事那边的配置问题。

要是还有问题,可以补充lftp的详细日志信息,方便进一步排查~

备注:内容来源于stack exchange,提问作者zaveryukha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 11:33:12