Gitを介して非対話式に自動更新したいUbuntu 20.04 Serverを実行するRaspberry Piがたくさんあります。
スクリプトは次のことを行います。
eval "$(ssh-agent -s)" ; ssh-add /home/michael/.ssh/terminal_github_deploy_key ; git -C /home/michael/terminal/src pull
このスクリプトは実際にPythonで書かれていますが、上記と同じことを行います。
cmds = []
cmds.append('eval "$(ssh-agent -s)"')
cmds.append(f'ssh-add {HOME_DPATH}/.ssh/terminal_github_deploy_key')
cmds.append(f'git -C {CHECKOUT_DPATH} pull')
cmd = ' ; '.join(cmds)
subprocess.check_call(cmd, shell=True)
この対話型警告を発生させることを除いて、うまく機能します。
The authenticity of host 'github.com (140.82.121.3)' can't be established.
ECDSA key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no/[fingerprint])?
yes | ...
研究によると、セキュリティ上の理由から意図的にパイプを許可しません(したがって動作しません)。警告が発生する原因が何であるかよくわかりません。 Gitで呼び出すSSHのようですが、無視する方法がわかりませんか?必ずしも使用する必要はありませんが、ssh-add
これを機能させる方法です。
ベストアンサー1
次のような他のスクリプトを書く必要はありません。予想される、あなたがいるときバニラ。
最も簡単な方法は追加することです。Githubホストキー到着
.ssh/known_hosts
編集:サーバーが多く、サイトのコンテンツが別々のホストキーではないため、これは不可能です。
それ以外の場合は、次のものを使用できます。GitPythonオートメーション