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

解决Bash脚本中YUM安装后SSH自动断开无法执行后续命令的问题

解决SSH会话在yum安装CrowdStrike传感器后中断的问题

问题原因

你的脚本使用了交互式的yum install命令,依赖手动输入y确认安装。虽然在here-doc中加入了y行,但这种方式容易出现输入时机不匹配的问题:yum可能还没准备好读取输入就收到了y,或者安装完成后yum进程残留占用标准输入,导致SSH会话提前终止。此外,CrowdStrike传感器安装过程中对系统环境的修改,在交互式场景下更易触发会话中断。

解决方案

1. 给yum添加自动确认参数-y

直接修改yum install命令,用-y参数自动确认所有安装提示,彻底避免交互式输入,让后续命令连贯执行:

source .env

echo "### Installing agent on $HOST_NAME ###"
scp -i ~/.ssh/test-key.pem $AGENT_NAME ec2-user@$HOST_NAME:
ssh -i ~/.ssh/test-key.pem -T ec2-user@$HOST_NAME << EOL
sudo yum install -y "$AGENT_NAME"
sudo /opt/CrowdStrike/falconctl -s --cid="$FALCON_CID"
sudo service falcon-sensor start
ps -e | grep falcon-sensor
EOL

2. 确保命令执行的原子性(可选)

如果担心安装失败后误执行后续命令,可以用&&串联命令,只有前序命令执行成功才会触发下一个:

source .env

echo "### Installing agent on $HOST_NAME ###"
scp -i ~/.ssh/test-key.pem $AGENT_NAME ec2-user@$HOST_NAME:
ssh -i ~/.ssh/test-key.pem -T ec2-user@$HOST_NAME << EOL
sudo yum install -y "$AGENT_NAME" && \
sudo /opt/CrowdStrike/falconctl -s --cid="$FALCON_CID" && \
sudo service falcon-sensor start && \
ps -e | grep falcon-sensor
EOL

3. 拆分SSH会话(若问题仍存在)

如果添加-y后还是出现会话中断,可能是传感器的安全规则影响了SSH会话。可以将安装与激活启动操作拆分为两个独立的SSH会话:

source .env

echo "### Installing agent on $HOST_NAME ###"
scp -i ~/.ssh/test-key.pem $AGENT_NAME ec2-user@$HOST_NAME:
# 第一步:执行安装
ssh -i ~/.ssh/test-key.pem -T ec2-user@$HOST_NAME << EOL_INSTALL
sudo yum install -y "$AGENT_NAME"
EOL_INSTALL

# 安装成功后执行激活与启动
if [ $? -eq 0 ]; then
    echo "### Activating and starting agent on $HOST_NAME ###"
    ssh -i ~/.ssh/test-key.pem -T ec2-user@$HOST_NAME << EOL_ACTIVATE
    sudo /opt/CrowdStrike/falconctl -s --cid="$FALCON_CID"
    sudo service falcon-sensor start
    ps -e | grep falcon-sensor
    EOL_ACTIVATE
fi

内容的提问来源于stack exchange,提问作者juicya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 01:54:22