簡體   English   中英

如何從Jupyter Notebook向shell命令“ git push”輸入密碼?

[英]How to input password to a shell command 'git push' from a Jupyter Notebook?

我在Jupyter Notebook的單元格中具有以下代碼:

!git push origin master

它將詢問我的Github密碼,但由於找不到輸入密碼的方式,該單元繼續運行。 由於某種原因,我想以這種方式推送代碼。

我嘗試遵循類似的問題,但對我而言似乎沒有任何作用。 這是我嘗試過的,但沒有成功:

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而不是stdin中讀取密碼。 獲得正確的tty來輸入該密碼以使其正常工作可能非常困難。 此外,這意味着您必須在筆記本中以純文本形式編寫密碼。

解決此問題的正確方法是:

  • 使用不帶密碼短語的 ssh-keygen生成ssh密鑰
  • 配置您的服務器以使用該密鑰
  • 配置git以使用SSH協議進行push

這完全避免了密碼要求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM