无法提示从 shell 脚本读取密码

无法提示从 shell 脚本读取密码

在下面的脚本中,它不等待passwd输入,而是以错误消息结束。

$ sudo ssh -i crowdpersona_key [email protected] bash -c ' git clone [email protected]/test1/crowdpersona.git && cd crowdpersona && mkdir attachments'
Error message : fatal: could not read Password for 'https://[email protected]': No such device or address

答案1

您不需要也不希望在 ssh 命令上使用 -i。

-i 选择一个文件,从中读取用于公钥认证的身份(私钥)。

man ssh

你的命令将会起作用:

sudo ssh [email protected] bash -c ' git clone https://[email protected]/test1/crowdpersona.git && cd crowdpersona && mkdir attachments'

答案2

[email protected]/test1/crowdpersona.git可能不是有效的 GitHub 项目 URL。它[email protected]:user/project.git适用于通过 SSH 的 Git,或https://github.com/user/project.git适用于通过 HTTPS 的 Git。当出现不存在的项目 URI 时,GitHub 会要求进行身份验证(可能是为了查找私有存储库):

$ git clone https://github.com/foo/bar.git
Cloning into 'bar'...
Username for 'https://github.com':

git命令无法在此处读取密码或用户名,可能是因为未分配 TTY。

$ git clone https://github.com/foo/bar.git
Cloning into 'bar'...
Username for 'https://github.com': ^C
$ ssh localhost git clone https://github.com/foo/bar.git
Cloning into 'bar'...
fatal: could not read Username for 'https://github.com': No such device or address

解决方案通常是使用正确的项目 URI。

相关内容