Skip to main content

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