gpt4 book ai didi

git - 在运行脚本之前使用 Github.com 检查 ssh

转载 作者:太空狗 更新时间:2023-10-29 13:58:01 27 4
gpt4 key购买 nike

我有这个:

ssh -T git@github.com || {
echo "Could not ssh to/with Github, check your auth";
exit 1;
}

我得到:

Hi ORESoftware! You've successfully authenticated, but GitHub does not provide shell access.
Could not ssh to/with Github, check your auth

既然退出代码不为零,我真的需要解析输出以查看是否可以建立身份验证吗?

最佳答案

在运行 ssh -T git@github.com 时,我期望只有 2 个返回值:

  1. 1:用户已通过身份验证,但无法使用 GitHub 打开 shell
  2. 255:用户未通过身份验证

由于@VonC 描述的原因,您永远不会得到 0 的返回码。这意味着您不能使用有趣的 bash 速记来检查返回码,例如短路逻辑检查 - 您必须明确记录和检查 $?


这是我用来检查我是否已获得 GitHub 授权的 shell 脚本:

function github-authenticated() {
# Attempt to ssh to GitHub
ssh -T git@github.com &>/dev/null
RET=$?
if [ $RET == 1 ]; then
# user is authenticated, but fails to open a shell with GitHub
return 0
elif [ $RET == 255 ]; then
# user is not authenticated
return 1
else
echo "unknown exit code in attempt to ssh into git@github.com"
fi
return 2
}

你可以在命令行中随意使用,如下所示:

github-authenticated && echo good

或更正式的脚本形式如下:

if github-authenticated; then
echo "good"
else
echo "bad"
fi

关于git - 在运行脚本之前使用 Github.com 检查 ssh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52340114/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com