git clone (自前サーバから)
前提
clone の対象
- サーバ名 :
sugoi-host
- ユーザ名 :
sugoi_user
- リポジトリのパス :
/var/repos/sugoi-project.git
方式
- ssh 公開鍵認証、の方式を使用
- これにより、パスワード入力を毎回する必要がなくなる
イメージ
環境
- Windows の場合は Git for Windows がインストールされていて、git bash が使用可能のこと
- そうすれば、Win, Mac, Linux 特に区別ない
※ TortoiseGit のような GUIクライアントを使用する場合も、clone までは この手順のようにコマンドでやってしまえば良い
操作 1. SSH キー生成
bash
ssh-keygen -t ed25519 -C "sugoi_user@sugoi-domain.com"
→ ~/.ssh/id_ed25519
が作成される
-t ed25519
は キーの種類で、デフォルトであるものの、明示した-C "sugoi_user@sugo-domain.com"
は、メールアドレスでなくても良くて、識別できれば何でも良い
操作 2. 公開鍵を 接続先サーバに登録する
1回(パスワード認証で)、直接ログインする
bash
vim ~/.ssh/authorized_keys
→ ディレクトリも、ファイルも、なければ新規作成。あれば追記する
warning
権限は 他ユーザに見えないようにしてある必要がある
(そうしないと、接続できない)
bash
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
操作 3. 接続確認
bash
ssh sugoi_user@sugoi-host
→ 何も聞かれずに入れる・・
操作 4. clone
bash
cd ~/Data
git clone sugoi_user@sugoi-host:/var/repos/sugoi-project.git
→ ~/Data/sugoi-project
フォルダに clone される (末尾の .git
は除かれる)
- ユーザ名は省略すると、クライアントの OS にログイン中のユーザ名でアクセスしに行く
- Windows ドメインでログインしていると ドメイン名つきでアクセスしに行くため注意
(参考) 試しにファイルを push する
bash
echo "test" > a.txt
git add -A
git commit -m '.'
git push