githubを作成しようとしています -子供を引っ張るwww-data ユーザーとして PHP スクリプトから「ホストキーの確認に失敗しました」を取得します。私のデフォルトユーザーはホストキーを登録しましたが、私のwww-dataは〜/ .sshディレクトリにアクセスできないため登録されていません。
Ubuntu 18.04にはシステム全体で既知のホストファイルがまだありますか? www-data ユーザーが自分のデータにアクセスできるようにするのは安全ではないと思います。~/.ssh- 目次は?
答え1
@GMasterが提案したように、自動化されたインポートのためにSSHの代わりにHTTPSを使用するのが最も賢明な選択肢のようです。ただし、SSHプロトコルを使用する必要がある場合(理由は何ですか)、いくつかの処理オプションとknown_hosts
資格情報があります。
~/.ssh
事前入力されたディレクトリを含むホームディレクトリにツリーを作成しますknown_hosts
。 (私のwww-data
システムではありましたが、ユーザーのディレクトリはチェックインしました。)ホストキーを手動で接続して確認することで、このファイルを直接生成できます。そのファイルとディレクトリに適切な権限(通常は0700/0600)と所有権があることを確認してください。/var/www
/etc/passwd
このファイルを適切な権限を持つ他の場所に置き、次を使用してポイントします。
-o UserKnownHostsFile=/path/to/known_hosts
上記の 2 つの方法と同様に、
-o StrictHostKeyChecking
オプションを試して、-o UpdateHostKeys
セキュリティと利便性のバランスを保ちます。最後の手段として、
/var/www/.ssh/config
www-dataのホストキー検証を完全に無効にするか、コマンドラインオプションを使用して無効にすることができます-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
。これは重大な安全上の危険を意味しますのでご注意ください。
そして、すでに疑われている点を強化するために、どんな状況でもwww-data(または他の)ユーザーに~/.ssh
。プライベート鍵もそこにありますよ!
答え2
はい、実際にデフォルトで設定されているシステム全体に既知のホストファイルがあります/etc/ssh/ssh_known_hosts
。実行しman ssh_config
て検索して、GlobalKnownHostsFile
システムのデフォルト値が何であるかを確認できます。-o
必要に応じて、通常どおりにこのオプションの値を変更することもできます。