431

GitHubサイトにリンクがあります...

https://help.github.com/articles/generated-ssh-keys

...そしてそれは述べています...

推奨されるHTTPS方式を使用しないことにした場合は、SSHキーを使用して、コンピューターとGitHub間の安全な接続を確立できます。以下の手順では、SSHキーを生成してから、GitHubアカウントに公開キーを追加する手順を説明します。

HTTPSが推奨される方法であるのはなぜですか?SSH方式に何らかのセキュリティ上の欠陥がありますか、それとも遅いですか?SSHキーを作成したので、セキュリティ上の懸念を軽減できますか?

4

7 に答える 7

261

GitHubは推奨事項を数回変更しました()。

現在、HTTPSを推奨しているようです。これは、最も幅広いネットワークとプラットフォームで、そしてこれらすべてに不慣れなユーザーがセットアップするのが最も簡単だからです。

SSHに固有の欠陥はありません(SSHが無効になる場合)-以下のリンクでは、SSH接続に関する詳細も提供されていることがわかります。

  1. HTTPSがファイアウォールによってブロックされる可能性は低くなります。

    https://help.github.com/articles/which-remote-url-should-i-use/

    https:// clone URLは、パブリックおよびプライベートのすべてのリポジトリで使用できます。これらのURLは、ファイアウォールやプロキシの背後にいる場合でも、どこでも機能します。

  2. HTTPS接続を使用credential.helperすると、パスワードをキャッシュできます。

    https://help.github.com/articles/set-up-git

    知っておきたいこと:クレデンシャルヘルパーは、HTTPSリポジトリURLのクローンを作成した場合にのみ機能します。代わりにSSHリポジトリURLを使用する場合、認証にはSSHキーが使用されます。推奨していませんが、この方法を使用する場合は、SSHキーの生成と使用についてこのガイドを確認してください。

于 2012-06-14T21:43:05.837 に答える
95

いくつかの理由でGitHubがHTTPSを推奨していると思います

  1. リポジトリに書き込むために必要なのはアカウントの詳細(SSHキーは不要)のみであるため、どこからでもリポジトリにアクセスする方が簡単です。

  2. HTTPSは、すべてのファイアウォールで開いているポートです。SSHは、外部ネットワークとの通信用のポートとして常に開いているわけではありません

したがって、GitHubリポジトリは、SSHよりもHTTPSを使用してより普遍的にアクセスできます。

私の見解では、SSHキーはそれらを作成する際に少し余分な作業をする価値があります

  1. SSHキーはGitHubアカウントへのアクセスを提供しないため、キーが盗まれた場合にアカウントが乗っ取られることはありません。

  2. SSHキーで強力なキーフレーズを使用すると、キーが盗まれた場合でも、誤用を制限できます(コンピューターアカウントへのアクセス保護を最初に解除した後)。

GitHubアカウントの資格情報(ユーザー名/パスワード)が盗まれた場合、GitHubパスワードを変更してアクセスをブロックし、すべての共有リポジトリをすばやく削除できます。

秘密鍵が盗まれた場合、誰かが空のリポジトリを強制的にプッシュして、所有している各リポジトリのすべての変更履歴を消去することはできますが、GitHubアカウントの内容を変更することはできません。GitHubアカウントにアクセスできるというこの違反からの回復を試みるのは、はるかに簡単です。

私の好みは、パスフレーズで保護されたキーでSSHを使用することです。コンピューターごとに異なるSSHキーを使用しているため、そのマシンが盗まれたりキーが侵害されたりした場合は、GitHubにすばやくログインしてそのキーを削除し、不要なアクセスを防ぐことができます。

接続しているネットワークがSSHポートをブロックしている場合、SSHはHTTPS経由でトンネリングできます。

https://help.github.com/articles/using-ssh-over-the-https-port/

HTTPSを使用する場合は、アカウントとリポジトリを保護するために、2要素認証を追加することをお勧めします。

ツール(エディターなど)でHTTPSを使用する場合は、そのツール構成でユーザー名とパスワードをキャッシュするのではなく、GitHubアカウントの開発者トークンを使用する必要があります。トークンは、非常に特定のアクセス権限用に構成でき、そのトークンが危険にさらされた場合に簡単に取り消すことができるため、HTTPSを使用する潜在的なリスクの一部を軽減します。

于 2016-05-08T01:23:46.027 に答える
17

引用が間違っているか、githubの推奨事項がページごとに異なるか、時間の経過とともに学習してレコを更新している可能性があります。

GitHubとやり取りするときは、SSH接続を使用することを強くお勧めします。SSHキーは、パスワードを使用せずに、信頼できるコンピューターを識別する方法です。以下の手順では、SSHキーを生成してから、GitHubアカウントに公開キーを追加する手順を説明します。

https://help.github.com/articles/generated-ssh-keys

于 2014-08-09T00:25:30.030 に答える
15

ファイアウォールによってブロックされている場合にHTTPS経由でSSH接続を有効にする

HTTPSポートを介したSSHが可能かどうかをテストし、次のSSHコマンドを実行します。

$ ssh -T -p 443 git@ssh.github.com
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

それがうまくいったら、素晴らしいです!そうでない場合は、トラブルシューティングガイドに従う必要があります。

git@ssh.github.comポート443を介してSSHで接続できる場合は、SSH設定を上書きして、GitHubへの接続をそのサーバーとポートを介して強制的に実行できます。

ssh設定でこれを設定するには、でファイルを編集し、次の~/.ssh/configセクションを追加します。

Host github.com
  Hostname ssh.github.com
  Port 443

もう一度GitHubに接続することで、これが機能することをテストできます。

$ ssh -T git@github.com
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

認証からGitHubへ/HTTPSポート経由でSSHを使用

于 2018-01-18T05:18:31.757 に答える
11

参照:公式どのリモートURLを使用する必要がありますか?help.github.comで回答してください。

編集:

SSH URLを使用するために、パブリックリポジトリへの書き込みアクセス権が不要になったようです。これにより、元の説明が無効になります。

オリジナル:

どうやら、HTTPS URLを優先する主な理由は、そのリポジトリへの書き込みアクセス権がない場合、SSHURLがパブリックリポジトリで機能しないことです。

実稼働サーバーへのデプロイにはSSHURLの使用をお勧めしますが、おそらくここでのコンテキストはHerokuのようなサービスです。

于 2013-03-27T01:44:02.967 に答える
1

新しいSSHキーを生成するよりも定期的にパスワードを変更する傾向があるため、SSHキーを使用して認証する方が安全性が低いと主張することができます。

与えられたSSHキーを尊重する寿命を制限するサーバーは、ユーザーにSSHキーを定期的に更新するように強制するのに役立ちます。

于 2016-05-05T15:45:29.933 に答える
0

HTTPSを採用するもう1つの理由は、複数のユーザーが中央サーバー(開発マシンなど)でコードを管理している場合、SSHベースの接続を使用するために各ユーザーが独自のsshキーを作成する必要があることです。接続がHTTPSの場合、この問題は存在しません。

プロジェクトが保存されているサーバーを使用するためのオンボーディングの一部として独自のキーを設定することはそれほど難しいことではないと主張できると思いますが、作業を完了するにはさらにハードルがあります。

于 2021-12-16T21:19:25.990 に答える