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