序章

このチュートリアルでは、認証にSSHキーを使用して本格的なGitサーバーをセットアップする方法を説明します。 Webインターフェースはありません。これは、GitのインストールとGitへのアクセスのセットアップについてのみ説明します。 VPSに使用するドメインの代わりに、ホスト「git.droplet.com」を使用します。

これは、作業中にコードを非公開にしておきたい場合に最適なオプションです。 オープンソースは現状のままである傾向がありますが、コードを自由に利用できるようにしたくない場合があります。 たとえば、モバイルアプリ、特に有料アプリを開発している場合です。 このコードは、クローンに使用するURLアドレスを知っていれば誰でも読み取ることができますが、それは知っている場合に限られます。

多くの人にとって大きな懸念事項が1つあります。それは、リポジトリへのWebインターフェイスです。 GitHubはこれを驚くほどうまく実現しています。 Gitosis GitList Gobletなどのインストール可能なアプリケーションがあります。 このチュートリアルではそれらについては説明しませんが、グラフィックインターフェイスに大きく依存している場合は、Gitサーバーのインストールが完了したらすぐに、それらの1つを確認してインストールすることを検討してください。

SSHキーペアを作成する

まず、SSHキーペアを生成する必要があります。 MacまたはLinuxを使用している場合は、ターミナルで次のコマンドを発行するだけですが、電子メールアドレスを自分のものに置き換えてください。

ssh-keygen -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/flynn/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again: 
Your identification has been saved in foo_rsa.
Your public key has been saved in foo_rsa.pub.
The key fingerprint is:
ab:cd:ef:01:23:45:67:89:0a:bc:de:f0:12:34:56:78 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|    o+-+  ..     |
|  E o            |
|   . ++.o..      |
|    o o H .      |
|   . .   =       |
|    . =o.o=      |
| o .             |
|  .              |
|     = o  .      |
+-----------------+

キーファイルにパスワードを設定することを強くお勧めします。パスワードはセキュリティのもう1つの層であり、影響はごくわずかです。 Windowsベースのオペレーティングシステムを使用している場合は、PuTTY Genなどのキーペアを生成するために使用できるツールがありますが、一部の国では使用が禁止されているため、使用する前に現地の法律を確認する必要があるという免責事項が付属しています。 そうでない場合は、VPSにログインし、キーペアを作成して、id_rsaとid_rsa.pubの両方をダウンロードして使用できます。

次に、VPSにはGit専用のユーザーが必要です。 ほとんどの人は単に「Git」というユーザーを作成します。これがこのチュートリアルで行うことですが、このユーザーには好きな名前を付けてください。

Gitユーザーをセットアップし、VPSにGitをインストールします

VPSにログインし、ルートを取得します*:

su -

*一部の人々は、このようにルートを使用することに不快感を覚えます。 VPSがsudoを使用するように設定されている場合は、そうします。

リポジトリを処理するためにUnixユーザー(必ずしもGitユーザー名である必要はありません)を追加します。

useradd git

次に、Gitユーザーにパスワードを与えます。

passwd git

今では次のように簡単です。

  • CentOS / Fedora: yum install git
  • Ubuntu / Debian: apt-get install git

SSHキーをアクセスリストに追加します

この時点で、Gitユーザーとしてログインする必要があります。 そのユーザーにまだログインしていない場合は、次のコマンドを使用してユーザーに切り替えます。

su git

次に、id_rsa.pubファイルをGitユーザーのホームディレクトリにアップロードする必要があります。 それが済んだら、SSHデーモンにどのSSHキーを受け入れるかを知らせる必要があります。 これは、許可されたキーファイルを使用して実行され、ドットフォルダ「ssh」にあります。 これを作成するには、次のように入力します。

mkdir ~/.ssh && touch ~/.ssh/authorized_keys

注:コマンドで二重の「&」を使用すると、それらがチェーンされるため、最初のコマンドを実行してから2番目のコマンドを実行するようにシステムに指示します。 パスの先頭に「チルダ」を使用すると、システムにホームディレクトリを使用するように指示されるため、「〜」はVPSに対して/ home /git/になります。

‘cat’コマンドを使用します。このコマンドは、ファイルの内容を取得してコマンドラインに返します。 次に、「>>」修飾子を使用して、コンソールに出力するだけでなく、その出力で何かを実行します。 単一の「>」は、指定した2番目のファイルのすべての内容を上書きするため、これには注意してください。 二重の「>」が追加されるので、何をしたいのかを確認してください。ほとんどの場合、「>>」を使用する方が簡単です。これにより、追加したものを復元するのではなく、いつでも削除できます。マッシュポテト。

このファイルの各行は、このアカウントにアクセスしたいキーのエントリです。 アップロードしたキーを追加するには、次のように入力します。

cat .ssh/id_rsa.pub | ssh [email protected] "cat >> ~/.ssh/authorized_keys"

これで、許可されたキーファイルでcatを使用すると、そこにキーが表示されます。

cat ~/.ssh/authorized_keys

アクセスリストに他のユーザーを追加する場合は、他のユーザーにid_rsa.pubキーを提供するだけで、承認されたキーファイルに追加できます。

ローカルリポジトリを設定する

これは非常に単純なプロセスです。Gitコマンドを呼び出して、必要なディレクトリのベアリポジトリを初期化するだけです。 プロジェクトのタイトルとして「MyProject」を使用したいとします。 フォルダを作成するときは、すべて小文字を使用し、スペースをハイフンに置き換えて、名前に「.git」を追加します。 したがって、「MyProject」は「my-project.git」になります。

そのフォルダーを空のGitリポジトリーとして作成するには:

git init --bare my-project.git

それでおしまい! これで、VPSにGitリポジトリが設定されました。 ローカルコンピュータでの使用方法に移りましょう。

ローカルコンピューターからGitサーバーを使用する

LinuxまたはMacOSでは、リモートオリジンを新しく作成したサーバーに変更する必要があります。 サーバーにプッシュするローカルリポジトリがすでにある場合は、次のコマンドを使用してリモートを変更します。

git remote set-url origin [email protected]:my-project.git

これが設定する新しいリポジトリである場合は、次を使用します。

git init && git remote add origin [email protected]:my-project.git

これで、自分のコードにしかアクセスできないことを知って、追加、プッシュ、プル、さらにはクローンを作成することができます。

しかし、信頼できる少数の人にこのサーバーへのアクセスを許可し、ユーザーの名前で並べ替えて物事を単純にしたい場合はどうでしょうか。 これを行う簡単で効果的な方法は、各人にちなんで名付けられたフォルダーを作成することです。したがって、Gitユーザーリストのホームフォルダーに次のように入力します。

mkdir user1 user2

リモートリポジトリを指定すると、次のようになります。

git remote add origin [email protected]:user1/user-project.git