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

能否不借助sshpass、expect或密钥,通过管道重定向给ssh传密码?

不借助sshpass/expect/密钥,用管道/重定向给ssh传密码可行吗?

结论:不可行,原因在于SSH的密码输入机制是直接读取终端(tty)设备,而非标准输入(stdin),管道和重定向传递的内容都属于stdin,SSH会直接忽略这部分输入,转而向终端请求密码。

为什么你的尝试没生效?

  • 命令 ssh | echo "password" 逻辑完全错误:它是将ssh的标准输出(stdout)连接到echo的标准输入(stdin),但echo根本不会读取stdin,同时ssh也不会从自身的stdout获取密码。
  • 命令 ssh < <(echo "password") 虽然将密码内容传入了ssh的stdin,但SSH设计时就刻意绕过stdin读取密码,目的是避免密码通过管道、文件等途径被意外捕获,提升安全性,所以这部分内容不会被识别为密码输入。

补充说明

如果需要自动化SSH登录,最安全且推荐的方式是使用SSH密钥对。如果暂时无法使用密钥,还是得依赖sshpass或expect这类专门处理交互式输入的工具——它们的核心原理是直接操控终端设备,模拟用户手动输入密码的行为,这是绕过SSH终端读取限制的可行方案。

内容的提问来源于stack exchange,提问作者Y.G. Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:05:58