Linux

MacでGitの初期設定+Githubへの鍵認証での接続をする方法

Linux

初回の1回だけしかしない、Gitの初期設定(Userとかの設定)や公開鍵認証にてGithubへsshで接続する設定方法をいつも忘れてしまいます。なのでメモっておきます。

Gitの初期設定(NameとEmail)

Gitリポジトリにアクセスする時の名前とメールアドレスを登録します。

設定の状態を確認する
bash-3.2$ git config --global -l

設定がされてない場合に以下のようなエラーが表示
fatal: unable to read config file '/Users/x/.gitconfig': No such file or directory

名前とメールを設定します
bash-3.2$ git config --global user.name "gogolon"
bash-3.2$ git config --global user.email "gogolonsyachiku@gmail.com"

再度確認します
bash-3.2$ git config --global -l
user.name=gogolon
user.email=gogolonsyachiku@gmail.com

鍵認証にてGithubへsshで接続する

次にGithubへ接続するために鍵認証の設定をします。流れとしては以下のようになります。

  1. PC側で公開鍵と秘密鍵を作成
  2. Githubへ公開鍵を登録
  3. Githubへ接続する秘密鍵を指定する設定+ssh接続

1. PC側で公開鍵と秘密鍵を作成

デフォルトでは[~/.ssh/id_rsa]という名前で作成されますが、私はすでにサーバ接続にid_rsaをつかっているため、別のファイル[~/.ssh/id_rsa_github]として作成します。

bash-3.2$ cd ~/.ssh
# 公開鍵と秘密鍵を作成します。
bash-3.2$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxxx/.ssh/id_rsa): id_rsa_github ←鍵の名前
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

#秘密鍵(id_rsa_github)と公開鍵(id_rsa_github.pub)が作成されていることを確認します。
bash-3.2$ ls -l
-rw-------  1 xxxxx  staff  1831  2  7 08:20 id_rsa_github
-rw-r--r--  1 xxxxx  staff   408  2  7 08:20 id_rsa_github.pub

2.Githubへ公開鍵を登録

githubへログオン後、[Settings]から[SSH and GPG keys]を選択して、[New SSH Key]をクリックします。

TitleとKeyを登録します。Keyは id_rsa_github.pub の内容をコピペして登録します。

bash-3.2$ cat id_rsa_github.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCegvJ/8hRer41
1ELIcteCATNNUNaoq/24cNsRaWp0x97I/z+rxWa9Zz+os35vKsk/
」d08BGqLikY/mGrR5LUTEiepAy1gFmC78zhIbprSipQjJksDxPAmpcV
qwrbR/eN3Sc8mR/URrbwFMUz+bMrnIbp9L8LQkWMzI5BSjzDg0e3F
(省略)

正しく登録されたことを確認します。

3.Githubへ接続する秘密鍵を指定する設定+ssh接続

最後にPC側からsshで接続してみます。ですが、その前にGithubへ接続する際に使う秘密鍵をしているするにように設定します。[~/.ssh/config]ファイルに追加、もしくは新規で接続します。

bash-3.2$ vi ~/.ssh/config
Host github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa_github
  User git

最後にsshで接続してみます。こんな感じで「Hi 〇〇〇!」と表示されたら成功です。

bash-3.2$ ssh -T github.com
Warning: Permanently added the RSA host key for IP address 'xxx.xxx.xxx' to the list of known hosts.
Hi gogoloon! You've successfully authenticated, but GitHub does not provide shell access.

おまけ:LaravelプロジェクトをGithubへアップしてみる

最後にGithub上に作成したプロジェクトに対して、Laravelプロジェクトをアップしてみます。
これから作成する掲示板のアプリです。

  • リモート(Github)側プロジェクト名:lara-board
  • PC側Laravelフォルダのパス:/Users/xxxxxx/Docker/Laravel/html/board

はじめにGitで接続する際の設定します。[url “github:”]より下を追加してください。Gitリポジトリへの接続はGIT、SSHまたはHTTPSで接続できるのですが、この設定を追加することでリRemote URLの指定が https: や git: を使っていてもSSHに自動的に変換して接続してくれます。

bash-3.2$ vi ~/.gitconfig
[user]
        name = gogolon
        email = gogolonsyachiku@gmail.com
[url "git@github.com:"]
        InsteadOf = git://github.com/
        InsteadOf = https://github.com/
プロジェクト作成直後(空の状態)

次に実際にGitlabリポジトリへアップしてみます。
PC側のフォルダへ移動して、Gitを初期化してRemoteリポジトリを設定、コミットしてマスタブランチとしてアップします。

bash-3.2$ cd /Users/xxxxxx/Docker/Laravel/html/board

bash-3.2$ git init
bash-3.2$ git add .
bash-3.2$ git commit -m "first commit"
bash-3.2$ git remote add origin https://github.com/gogoloon/lara-board.git
bash-3.2$ git push -u origin master

これでGithub側のリポジトリへデータがアップされているはずです!

メモ:リモートリポジトリを確認、変更する方法

# Remoteリポジトリの設定確認
bash-3.2$ git config remote.origin.url
301 Moved Permanently
# 変更したい場合 bash-3.2$ git remote set-url origin git@github.com:gogoloon/lara-board.git

以上になります。

コメント