Ubuntu20にGitをインストールして、WindowsからSSH接続しつつpush
やらpull
やらをしたい。
CentOS7での手順についてはこちらに掲載してます。
概要
この記事では、Ubuntu20にGitをインストールしてWindowsからSSH接続して使用する手順を掲載する。
仕様書
環境
サーバー側
- Ubuntu 20.04 LTS
- git version 2.25.1
クライアント側
- Windows 10 Home Version 21H1(OS ビルド 19043.1586)
- git version 2.23.0.windows.1
手順書
サーバー(Ubuntu)側の手順
本節は、サーバー(Ubuntu)側の手順です。
- Gitをインストールする
sudo apt update sudo apt install git
- 下記のコマンドを実行して「Git」で使う
gitusers
グループとgituser
ユーザーを作る。ユーザーでsudo
できるようにsudo
グループに所属させる。groupadd gitusers adduser gituser adduser gituser gitusers gpasswd -a gituser sudo
- リポジトリを保管するディレクトリーを作成する。
sudo mkdir -p /var/lib/git sudo chown -R gituser:gitusers /var/lib/git
- 先程作った
gituser
アカウントに切り替えて、テスト用のリポジトリを作成する。例としてtest-repo.git
というリポジトリを作成する。su gituser cd /var/lib/git sudo mkdir test-repo.git cd test-repo.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
- サーバー(Ubuntu)側に
/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とかを使う前に自分のサーバーで練習してみても良いかもね!