0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

<完全解説>GitHubリポジトリにSSH接続してクローン、プッシュできるまで(Mac)

Last updated at Posted at 2021-02-03

#GitHubにSSH接続できるまでの大まかな流れ

公開鍵、秘密鍵をterminalで生成
→公開鍵をGitHubのKey設定に登録
→ローカルにある秘密鍵をつかって、GitHubにSSH接続

という流れです。

#GitHubとは
まずGitHubって知ってるし、知ってるから検索して記事見てるんだわwって感じですが、
一応、一方的にかつ形式的に説明

GitHubとは、ソースコードやデザインデータを保存・公開できる管理サービスのひとつ

便利ですねぇ〜
似てるサービスには、GitLabってありますね

#SSHとは
SSHとは、Secure Shellの略で、SSH接続とは、安全にリモートコンピューターを遠隔操作をする枠組みの一種。
パスワード認証方式公開鍵認証方式の2つが代表的で、SSHの設定方法により選択が可能

項目 パスワード認証方式 公開鍵認証方式
方法 パスワード 公開鍵
安全レベル 低め 高め
設定の難しさ 簡単 複雑
推奨度

今回は、公開鍵認証方式でいきますかっ

#1. ターミナルで秘密鍵・公開鍵の生成コマンドを実行
$はターミナルで見る一番右端のやつですね。

$cd ~/.ssh
$ssh-keygen -t rsa

####<解説>
実は隠しフォルダとして、
MacのFinderのHOME(/Users/username/)のディレクトリには、.sshというフォルダが存在していて、
実際に、GUIのホームディレクトリ上で確認したい場合は、
command(コマンド) + shift(シフト) + .(ドット)
のショートカットキーを押すと、出現する。
(いやいや、わざわざ隠しているなら、自分から見つければいい、、、)

つまり、terminal上でその.sshフォルダに移動し、そこで、
ssh-keygen -t rsa
というコマンドを打ったということになる。

keygenkey generateの意味を指し、鍵生成コマンド。
-tはオプションで、 生成する鍵の種類を指定できる。(参考URL
rsaというのは、鍵の種類で、rsaという暗号アルゴリズムを用いて作った鍵だよってこと

#2. 鍵が生成される
ssh-keygen -t rsaコマンドを打つと、

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

のように表示され、Enterを推し進めると、生成される。

####<解説>
デフォルトの鍵の名前は、id_rsaとなっていて、
もし生成時に名前をつけたい場合は、Enter file~の箇所で、適当な名前をつける。
(今回は、id_github_rsaという名前で進めちゃいます)

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):id_github_rsa←ここで名前を指定する
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

#####注意事項
デフォルトの鍵名id_rsaで作った時に、初回は問題ないが、
次回鍵を作る時に、また同じデフォルト名id_rsaで作成してしまうと、
鍵自体が更新されてしまい、問題となるので、名前をつけることをオススメします。

また、鍵名と同様に、passphraseを設定したい場合は、適当に設定。
合言葉みたいなもので、設定すると、passphraseを入力しないと、公開鍵が出力できなくなります。

####ちなみに、rsaファイルの権限を読取に変更すると良き◎
所有者には、読取権限だけを付与して、
ファイル自体に制限をかけておくと、セキュリティレベルが上がるのでオススメ

$ chmod 400 ~/.ssh/id_github_rsa ※400は 所有者は読み取りOK, グループ, その他は禁止
$ chmod 400 ~/.ssh/id_github_rsa.pub

3桁の番号があるが、左から、所有者の権限、グループの権限、その他の権限という設定になる。
上記コマンドは、認証鍵に、所有者だけ読込権限を付与ということになる。

#3. ~/.ssh/configファイルに、鍵の用途を記述する
鍵を作る時に名前を指定した時は、configファイルに記述します。
※デフォルトではid_rsaという名前の鍵を読みにいくので、もしconfigファイルに名付けた鍵の設定をしないと、SSH接続に失敗してしまう。

$vi ~/.ssh/config

を打って、configファイルの中身をみます。

i

を押して、viminsert modeに切り替えます。
(insertの頭文字のiですねえ)

Host github github.com
  HostName github.com
  IdentityFile ~/.ssh/id_github_rsa
  User git

そして、上記をコピペ。
次に、下記の上書き保存のコマンドを打って、Enterを押す

:wq

これで、変更点を保存して、vimから抜けられます。
vimとは、いわゆるterminal上でファイル内容を編集する時に使うモード みたいなものです。

※参考までに

コマンド 挙動
:q 無編集の状態でvimを閉じる。
:q! 変更内容を破棄して終了

####<解説>

  • Host github github.comgithubはailias(エイリアス)、つまり、あだ名です。
  • SSH接続する時に、あだ名を使って接続できるようになります。
  • HostNameは、どのホストに接続するか指定します。今回はgithub.comですねえ
  • IdentityFileは、秘密鍵のファイルを絶対パスで指定します。
  • Userはユーザー名を指定します。

#4. 生成した公開鍵をGitHubのSSHキー設定に登録
GitHub Key設定ページにアクセスして、New SSH keyをクリック。
スクリーンショット 2021-02-03 17.48.24.png

すると、次のページに遷移するので、
タイトルに使っている「鍵の名前+.pub」と入れて、
スクリーンショット 2021-02-03 17.50.27.png

Keyには、id_github_rsa.pubの内容をコピペする。
下記、コマンドを使えば公開鍵の内容をコピーできます。

$pbcopy < ~/.ssh/id_github_rsa.pub

#####注意事項
決して、.pubじゃない方の内容をコピペしないこと。
それは秘密鍵なので、なんでも不正利用されてしまいます。
秘密鍵から公開鍵は生成できてしまうので、、、きをつけましょう!!!!!!!

#5. いざ、接続!!頼むよ〜

$ssh -T git@github.com

えいっ

Hi GitHunUserName! You've successfully authenticated,
but GitHub does not provide shell access.

と表示されれば、完了です。
GitClientから接続できます。クローン、プルも自由自在です。
個人的なオススメ: GitFork

####<解説>

  • sshは、ssh接続します のコマンド
  • -Tは、オプションで、**仮想端末の割り当てを禁止します。**という意味で、今回は、中間的な踏み台の仮想環境を通して、github.comにはアクセスしないから、仮想端末を割り当てる必要がないということで、このオプションをつけている
  • git@github.comは、configに設定した、UserHostNameを、次の形User@HostNameでくっつけたもの。
$ssh -T github

でも接続できます!

#まとめ
###やったぁぁぁぁぁぁぁぁぁぁぁぁあああああああああああああ!!!!

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?