【CentOS7】GitをインストールしてWindowsからSSH接続する

ネコニウム研究所

PCを利用したモノづくりに関連する情報を掲載するブログ

【CentOS7】GitをインストールしてWindowsからSSH接続する

2021-11-26 | ,

CentOS7にGitをインストールして、WindowsからSSH接続しつつpushやらpullやらをしたい。

Ubuntu20での手順についてはこちらに掲載してます。

概要

この記事では、CentOS7にGitをインストールしてWindowsからSSH接続して使用する手順を掲載する。

仕様書

環境

サーバー側

  • CentOS Linux release 7.9.2009 (Core)
  • git version 1.8.3.1

クライアント側

  • Windows 10 Home Version 21H1(OS ビルド 19043.1348)
  • git version 2.23.0.windows.1

手順書

サーバー(CentOS)側の手順

本節は、サーバー(CentOS)側の手順です。

  1. Gitをインストールする。
    sudo yum install git
  2. Gitで使うgitusersグループとgituserユーザーを作る。rootで下記のコマンドを実行する。
    groupadd gitusers
    useradd -g gitusers gituser
    passwd gituser
  3. リポジトリを保管するディレクトリーを作成する。
    su gituser
    sudo mkdir -p /var/lib/git
    sudo chown -R gituser:gitusers /var/lib/git
  4. リポジトリを作成する。
    sudo cd /var/lib/git
    sudo mkdir testrepo.git
    sudo cd testrepo.git
    sudo git init --bare --shared

クライアント(Windows)側の手順

本節は、クライアント(Windows)側の手順です。SSH認証のところでちょっとだけサーバー(Ubuntu)側の手順が含まれます。

Windowsに「Git Bash」をインストールしてなければ。こちらからダウンロードしてインストールしておく。

  1. 「Git Bash」を起動する。
  2. SSHの鍵ファイルを作成する。ファイル名を指定しない場合、C:\Users\<UserName>\.sshの中にid_rsa秘密鍵とid_rsa.pub公開鍵が作成される。
    ssh-keygen -t rsa
  3. サーバー(CentOS)側に/home/gituser/.ssh/authorized_keysを作成して、クライアント(Windows)側のid_rsa.pub公開鍵の内容をコピペする。
  4. ここからはクライアント(Windows)側の作業に戻る。C:\Program Files\Git\etc\ssh\ssh_configに下記を追記する。
    Host <HostName>
    User gituser
    HostName <サーバーのIPアドレス>
    IdentityFile ~/.ssh/id_rsa
    Port 22
    IdentitiesOnly yes
  5. リモートリポジトリ(サーバー)からテスト用のリポジトリをクローンする。下記の例では、クライアント(Windows)側のD:\repos\testrepoにクローンした結果が出力される。Linux的なパスの指定のやり方なのと、管理者権限が必要なパスにクローンするとエラーになること(管理者権限で「Git Bash」を起動するれば回避できるけどめんどい)に注意。
    git clone ssh://<HostName>:/var/lib/git/test-repo.git /d/repos/testrepo

    下記のメッセージは、「リポジトリが空だよ!」っていう警告なんだけども、今回は無視していい。

    warning: You appear to have cloned an empty repository.
  6. コマンドが正常に実行されるとD:\repos\testrepoが作成される。このフォルダの中に.gitフォルダが作成されてるか確認する。
  7. testrepoの中にREADMEファイルを作成してpushしてみる。
    cd /d/repos/testrepo
    git add README
    git commit -m 'Add README'
  8. READMEmasterブランチに追加されてるかファイルの一覧を表示して確認する。
    git ls-tree master

まとめ(感想文)

githubとかを使う前に自分のサーバーで練習してみても良いかもね!