マイデバイス(Raspberry Pi Zero W)が起動すると、というスクリプトの実行を担当するsystemdサービスを起動します。start.sh
このサービスは順番に私のmain.py
Pythonスクリプトを実行します。
start.sh
を実行する前にGithubから変更をインポートしたいと思いますmain.py
。最初の試みはを追加することでしgit pull
たが、エラーが発生しました。Host key verification failed.
これはGithub認証のためにSSHキーにアクセスするsystemdサービスに関連していると仮定していますが、必要に応じてsystemdでSSHを有効にする方法がわかりません。
どんなアドバイスもありがとうございます。
答え1
リモートサーバーのホストキーを受け入れるように求められます。アイテムがあるかどうかを確認するために、まずそれを直接実行できますかknown_hosts
?また、User
セクションの内容が[Service]
正しいことを確認してください。
答え2
私が達成したいことを達成する方法を見つけました。
Github は以下を生成する機能を提供します。配布キー、リポジトリへの読み取り専用SSHアクセスを提供します。
パスワードなしで新しいSSHキーを生成し、それを読み取り専用配布キーとしてリポジトリに追加し、起動時にsystemdサービスでトリガーされるスクリプトを使用してリポジトリから変更を自動的にインポートできるようになりました。
パスワードなしのSSHキーは、パスワードで保護するよりもはるかに安全でないことは注目に値しますが、キーは読み取り専用アクセスのみを提供するため、妥協することになります。
答え3
Host key verification failed.
これは通常、相手のサーバーIDが変更されたか、~/.ssh/known_hosts
ファイルにホストキーが追加されていないことを意味します。
このスクリプトを実行しているユーザーと同じリポジトリからデータをインポートしてみてください。またはを使用して古いホストキーを削除することもできますssh-keygen -R [hostname/ip]
。
認証にSSHキーを使用している場合は、SSHキーが~/.ssh/
このスクリプトを実行しているユーザーのフォルダにあることも確認してください。