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)側の手順です。
- Gitをインストールする。
sudo yum install git - Gitで使う
gitusersグループとgituserユーザーを作る。rootで下記のコマンドを実行する。groupadd gitusers useradd -g gitusers gituser passwd gituser - リポジトリを保管するディレクトリーを作成する。
su gituser sudo mkdir -p /var/lib/git sudo chown -R gituser:gitusers /var/lib/git - リポジトリを作成する。
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」をインストールしてなければ。こちらからダウンロードしてインストールしておく。
- 「Git Bash」を起動する。
- SSHの鍵ファイルを作成する。ファイル名を指定しない場合、
C:\Users\<UserName>\.sshの中にid_rsa秘密鍵とid_rsa.pub公開鍵が作成される。ssh-keygen -t rsa - サーバー(CentOS)側に
/home/gituser/.ssh/authorized_keysを作成して、クライアント(Windows)側のid_rsa.pub公開鍵の内容をコピペする。 - ここからはクライアント(Windows)側の作業に戻る。
C:\Program Files\Git\etc\ssh\ssh_configに下記を追記する。Host <HostName> User gituser HostName <サーバーのIPアドレス> IdentityFile ~/.ssh/id_rsa Port 22 IdentitiesOnly yes - リモートリポジトリ(サーバー)からテスト用のリポジトリをクローンする。下記の例では、クライアント(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. - コマンドが正常に実行されると
D:\repos\testrepoが作成される。このフォルダの中に.gitフォルダが作成されてるか確認する。 testrepoの中にREADMEファイルを作成してpushしてみる。cd /d/repos/testrepo git add README git commit -m 'Add README'READMEがmasterブランチに追加されてるかファイルの一覧を表示して確認する。git ls-tree master
まとめ(感想文)
githubとかを使う前に自分のサーバーで練習してみても良いかもね!
