当前位置: 首页 > news >正文

bash判断ssh -Tgit@GitHub是否成功,不要看 ssh 的退出码,而要看输出内容

“ 判断 GitHub SSH 成功与否,永远不要看 ssh 的退出码,而要看输出内容” ,
这句话基本正确,尤其是针对 GitHub 推荐的 SSH 测试命令ssh -T git@github.com

  • GitHub 官方文档明确指出:成功认证后,该命令会输出类似“Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.”的消息,同时退出码(exit code)为 1(而非传统的 0 表示成功)。
  • 这是因为 GitHub 故意拒绝提供 shell 访问(它打印欢迎消息后立即退出),导致退出码为 1。
  • 如果认证失败(如密钥不对、未添加等),通常退出码为 255,并输出 “Permission denied (publickey)” 等错误。
  • 因此,单纯检查退出码是否为 0 会误判:成功时是 1,看起来像“失败”。

实际判断建议

  • 优先看输出内容:看到 “You’ve successfully authenticated” 就表示 SSH 密钥认证成功。
  • 如果想在脚本中自动化检查退出码,可以这样处理(常见做法):
    • 成功:退出码 == 1
    • 失败:退出码 == 255(或其他非 1 的值)

示例 Bash 函数(来自社区常见实现):

ssh-T git@github.com>/dev/null2>&1if[$?-eq1];thenecho"SSH 认证成功"elseecho"SSH 认证失败"fi

总之,这句话的“永远不要看 ssh 的退出码”有点绝对(脚本中还是要看的,但要看具体值),但核心意思是对的:别指望退出码 0 表示成功,主要靠输出内容确认。这也是 GitHub 的特殊设计造成的。``

http://www.cnnetsun.cn/news/43635.html

相关文章:

  • 22、家庭网络实用指南:数据备份、隐藏与布线策略
  • 28、通信与数据:实现智能家居的关键要素
  • 04_让浏览器新标签页“重生”——集颜值、效率与 AI 于一体的 WeTab 体验指南
  • 24、UNIX环境下的SAS数据集选项与格式详解
  • 26、UNIX环境下SAS的信息格式、宏功能及过程使用指南
  • 29、SAS系统相关目录、工具及通用命令详解
  • 56、网络信息服务(NIS)与轻量级目录访问协议(LDAP)部署指南
  • 57、Linux LDAP 与 CUPS 系统使用指南
  • ComfyUI与社交平台头像生成结合:个性化IP打造工具
  • ComfyUI中使用Style Transfer节点的艺术化处理
  • 27、基于地理关联数据的用户与位置建模剖析
  • 2.1 Cursor进阶技巧:Rules设置与文档集成全攻略
  • 英伟达数学推理新突破:15亿参数模型性能媲美完整版DeepSeek-R1
  • 10、网络传输与会话管理工具:lftp 与 screen 实用指南
  • 12、提升系统安全性与网络管理:SELinux与网络命令详解
  • 腾讯发布HunyuanWorld-Voyager:单图驱动3D场景生成技术突破,开启沉浸式内容创作新纪元
  • 智谱AI开源力作GLM-4-9B:多维度性能超越Llama-3-8B,开启大模型应用新纪元
  • 6、高增长、高科技企业的商业模式剖析
  • 基于自抗扰控制ADRC的永磁同步电机仿真模型(Simulink仿真实现)
  • 12、Oracle软件安装、配置、故障排除与卸载全解析
  • 技术文档还在全靠 Markdown?它可能真的在拖你后腿
  • 阿里重磅发布HunyuanCustom视频生成模型 多模态技术引领虚拟内容创作新革命
  • OpenAI开源力作:GPT-OSS模型深度解析与应用指南
  • 基于微信小程序的商品展示计算机毕设(源码+lw+部署文档+讲解等)
  • 【Spring】实现验证码功能
  • 人工智能行业发展新趋势:技术突破与应用拓展并行
  • 8、X Window System使用指南
  • Log4j2 + AI 异常分析:当生产环境报错时,让 AI 自动告诉你 Bug 在哪一行(LogAppender 实战)
  • 11、如何使用 PPP 协议连接互联网
  • 12、OpenLinux 系统互联网邮件配置全攻略