[英]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>]
-S
是sudo
的選項,而不是git
...,因為您可以看到git
甚至都不要求輸入密碼,它只是告訴您-S
無效。
我相信git
使用一種安全的方式來獲取密碼,從tty
而不是stdin中讀取密碼。 獲得正確的tty
來輸入該密碼以使其正常工作可能非常困難。 此外,這意味着您必須在筆記本中以純文本形式編寫密碼。
解決此問題的正確方法是:
ssh-keygen
生成ssh
密鑰 git
以使用SSH協議進行push
這完全避免了密碼要求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.