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とかを使う前に自分のサーバーで練習してみても良いかもね!

