当前位置: 首页 > 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.rkmt.cn/news/95461.html

相关文章:

  • 21、智能家居物理实践:节能、供电与备份全攻略
  • 22、家庭网络实用指南:数据备份、隐藏与布线策略
  • 29、智能家居的数据来源
  • 30、智能家庭的数据来源
  • 31、智能家居的数据来源与自动化控制
  • 35、智能家居控制系统全解析
  • DreamAquarium v2.083:梦幻水族馆屏保
  • 26、UNIX环境下SAS的信息格式、宏功能及过程使用指南
  • 高级用户必备:ComfyUI自定义节点扩展功能全揭秘
  • 深入理解C++中的堆栈:从数据结构到应用实践
  • C++指针详解:从基础到应用
  • 44、邮件服务与VoIP技术全解析
  • 53、分布式文件系统与网络信息服务入门
  • 56、网络信息服务(NIS)与轻量级目录访问协议(LDAP)部署指南
  • 61、Linux 虚拟化与备份全解析
  • 62、Linux备份全攻略
  • 探索HiDream-I1在ComfyUI中的高效应用指南
  • 视觉语言模型新突破:CogAgent 9B版本震撼发布,引领多模态交互新纪元
  • 39、敏捷软件开发:从阶段视角的全面解析
  • 2025年12月13日最热门的开源项目(Github)
  • ComfyUI与玻璃艺术结合:光影效果AI模拟实验
  • HiPO技术深度解析:LLM动态推理的革命性突破
  • 阿里云通义千问开源新突破:Qwen3-VL系列模型震撼发布,多模态能力对标行业顶尖水平
  • 腾讯开源Hunyuan-0.5B-Instruct-FP8:轻量级大模型部署新纪元
  • 支持四大电脑系统 绿色免装自动嗅探,视频一键下载工具
  • 28、地理数据剖析:基于关联数据的位置与用户画像构建
  • 人工智能大模型技术突破:Qwen3-30B-A3B-MLX-8bit模型引领行业新变革
  • 腾讯混元轻量化大模型家族开放下载:引领AI全场景落地新革命
  • 3分钟掌握downkyi下载优先级:让你的重要视频先下载
  • 3.1 Claude Code核心功能:Command、Agent与Hook自动化