gpt4 book ai didi

python - 如何从 Jupyter Notebook 向 shell 命令 'git push' 输入密码?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:00 33 4
gpt4 key购买 nike

我在 Jupyter Notebook 的单元格中有以下代码:

!git push origin master

这将询问我的 Github 密码,但单元继续运行,因为我找不到输入密码的方法。出于某种原因,我想以这种方式推送代码。

我试图跟随 similar questions但在我的情况下似乎没有任何效果。这是我尝试过但没有用的方法:

import getpass
import os

password = getpass.getpass()
command = "git -S push origin master " #can be any command but don't forget -S as it enables input from stdin
os.system('echo %s | %s' % (password, command))

这是上面的日志:

unknown option: -S
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]

最佳答案

-Ssudo 的一个选项,而不是 git... 正如你所看到的 git甚至不要求输入密码,它只是告诉您 -S 无效。

我相信 git 使用一种安全的方式来获取密码,从 tty 而不是标准输入读取。可能很难找到正确的 tty 来输入密码来完成这项工作。此外,这意味着您必须在笔记本上以明文形式写下密码。

正确的处理方式是:

  • 使用 ssh-keygen 生成一个 ssh key 没有密码
  • 配置您的服务器以使用该 key
  • 配置 git 以使用 SSH 协议(protocol)执行 push

这完全避免了密码请求。

关于python - 如何从 Jupyter Notebook 向 shell 命令 'git push' 输入密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51798701/

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