0
0

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接続してみた

Last updated at Posted at 2021-10-27

#なぜSSH接続するのか
HTTP形式やHTTPS形式などGitHubで使える通信規格は何種類かあり、
一般的にはHTTP、HTTPS形式が使われています。
しかし、SSHプロトコルを使うことで、リモートサーバーや各種サービスへの接続や認証が可能となり、GitHubに接続する際にユーザー名などを省略することができます!
#接続方法
GitHubにSSH接続するためには、鍵の登録が必要となります。

#公開鍵、秘密鍵を作成する

鍵とは公開鍵と秘密鍵のことです。公開鍵は一般に公開するもの、秘密鍵はほかの人に見られてはいけません。
そのため秘密鍵は自分で保持し、公開鍵は相手(今回であればGItHub)に送ります。
#公開鍵と秘密鍵のペアを生成
まずは鍵を作成するため、鍵を入れるフォルダーに移動します。

$cd ~/.ssh

初めて鍵を作成するときには何も入っていない状態です。
次のコマンドで鍵を作成します。

$ssh-keygen -t rsa 

作成する際にいろいろ聞かれますが、そのままEnterを押すと、id_rsaとid_rsa.pubの二つの鍵が生成されます。

$ 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:

すでに鍵を生成している場合、上書きされるので注意してください(以下)

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
/home/user/.ssh/id_rsa already exists.
Overwrite (y/n)?

#GitHubに公開鍵をアップする
https://github.com/settings/ssh

で公開鍵を設定できます。

画面右上の「Add SSH key」のボタンを押します。
image.png

「title」に公開鍵名、「key」に公開鍵の中身を入れます。
image.png

鍵の中身のクリップボードへのコピーは

Macの場合

$ pbcopy < ~/.ssh/id_rsa.pub

Windowsの場合

$ clip < ~/.ssh/id_rsa.pub

Ubuntuの場合

$ cat ~/.ssh/id_rsa.pub | clip.exe

でコピーできます。

#接続を確認する

ターミナルに戻り、以下のコマンドを打って確認してください。

$ ssh - T git@github.com
Hi (account名)! You've successfully authenticated, but GitHub does not provide shell access.

と返ってきたら成功です!!

しかし...

鍵を作成する際に、名前を指定していない場合はうまくいかないかもしれません。
理由として、
ssh接続を行う際、「~/.ssh/id_rsa」、「~/.ssh/id_dsa」、「~/.ssh/identity」しかデフォルトでは見にいかないからです。

これに対応するためにsshディレクトリ内にconfigを作成します。

~/.ssh/config

configフォルダに

Host github github.com
  HostName github.com
  IdentityFile ~/.ssh/id_git_rsa #ここに自分の鍵のファイル名
  User git

を作成し、再び接続すると成功します。

再び接続

$ssh -T git@github.com
Hi (account名)! You've successfully authenticated, but GitHub does not provide shell access.

今度こそSSH接続が成功しました!

#GitLabなどにもSSH設定したい場合

自分の場合はGitLabにもSSH設定していたため、Configファイルにそれぞれ設定してあげる必要がありました。

以下

Host gitlab 
		HostName gitlab
		User UserName
    identityFile ~/.ssh/id_rsa
	
Host github
       HostName github.com
	   User UserName
	identityFile ~/.ssh/id_rsa	
	User git

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?