シェルスクリプトからパスワードを読み取るように求められません。

シェルスクリプトからパスワードを読み取るように求められません。

以下のスクリプトでは、入力を待たず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公開鍵認証に使用されるID(秘密鍵)を読み取るファイルを選択します。

バラより

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.gitSSH経由のGitと連携するか、https://github.com/user/project.gitHTTPS経由のGitと連携します。存在しないプロジェクトURIが表示された場合、GitHubは認証を要求します(個人リポジトリを見つけるため)。

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

TTYが割り当てられていないため、コマンドgitはパスワードまたはユーザー名を読み取ることができません。

$ 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を使用することです。

関連情報