Bash脚本中执行SSH命令后,会话是否会自动终止?
SSH会话在脚本与交互式场景下的结束机制
脚本中带命令的SSH会话
当你在Bash脚本里执行这类带命令的SSH调用:
ssh mylogin@myremotemachine 'some command; another command'
SSH会在远程机器上执行完你指定的所有命令后自动结束会话,完全不需要额外输入exit或者其他关闭命令。
这是因为这种模式属于非交互式连接,SSH的逻辑就是:建立连接→执行传入的命令序列→收集输出→命令全部完成后直接终止连接,控制权回到本地脚本。
交互式SSH会话的区别
如果直接执行不带命令的SSH:
ssh mylogin@myremotemachine
这会启动一个交互式远程shell,你可以持续输入命令和远程系统交互。这种情况下,远程shell会一直保持运行,必须主动输入exit、按Ctrl+D(发送结束符)或者手动断开,会话才会结束。
一句话总结
- 脚本里带命令的SSH:命令跑完自动断连,不用额外操作
- 交互式SSH:必须主动退出才能结束会话
内容的提问来源于stack exchange,提问作者ASR
相关产品推荐
相关产品推荐

