Posted at

CentOS7からGithubにSSH接続する初期設定

他の記事が古くCentOS7からGithubへのSSH接続に手間取ったので、参考までに。

また、それぞれのコマンドの意味を説明している記事がなかったので簡単に説明しています。詳細は公式リファレンスを読んでください。

【環境】

ConoHaVPS

CentOS 7.2

【前述】

①コード内に書かれているコメントは、私がわかりやすいように記述しました。参考に入力してください。

②既にid_rsaファイルが存在する場合は上書きされるので注意

③エラーが起きた場合はエラーコードを読んで対処してください。

ちなみに大体のエラーの原因は権限回りです。

sudo を付けて実行すれば動く事が多々あります。

【SSH接続とは】

Githubとリモート環境などを接続するための接続方法です。

パスワードを作って、それをGithubに教えてあげることでGithub側からリモートへ接続できるようになります。ほぼ必須の手順です。

【手順】

作成するsshディレクトリに移動します。

$ cd ~/.ssh

次から、sshディレクトリ内にキーペアを作成し、接続認証を行っています。

$ ssh-keygen -t rsa -b 4096 -C "ここにあなたのメールアドレスを記述してください" 

すると以下の文が順番に表示されます。

それぞれ説明していきます。

Generating public/private rsa key pair.

Enter a file in which to save the key (/c/Users/you/.ssh/id_rsa): //何も入力せずにエンターキーを押してください。
Enter passphrase (empty for no passphrase): //好きなパスワードを入力してください
Enter same passphrase again: //もう一度入力してください。

上から説明していきます。

①秘密キーと公開キーのペアを作成します

②ファイルの名前を入力してください

③パスワードを入力してください

④もう一度入力してください

Githubは自動でファイル名を付けて、デフォルトのファイル名の場合、勝手に探してくれます。なので、特別な理由がない場合以外はファイル名は打たないほうがいいかと思われます。

ファイルが作成されているか確認します。

$ ls // id_rsaファイルが作成されているか確認する。

"色々なファイル名" id_rsa id_rsa.pub

2ファイルが作成されていればOKです。


作成した公開キーをGithubに登録する。

Githubに鍵を渡してあげなければCentOSには接続できません。

Github側でSSHキーを登録しましょう。

$ cat id_rsa.pub

// 以下にから始まる文字列が表示されます。文字列の最後尾に、最初に登録したメールアドレスが記述されていればそれです。

表示されたパスワードをコピーして、Github側に登録しましょう。

以下のURLへ飛んで、SSHキーの設定を行います。

https://github.com/settings/keys

簡単な手順としては

①NewSSHKeyを押下する。

②Keyの部分に先ほどコピーしたキーの内容を張り付ける

③Titleは何でもいいです。好きなお名前をどうぞ

Githubのバージョンによって変更があるかもしれませんので、

詳しくはGithubのHPを確認してください。


SSHキーの管理追加

$ eval "$(ssh-agent -s)"

Agent pid ****(//*は環境によって異なります)

上から説明していきます。

①ssh-agentコマンドは公開鍵認証で使われる認証鍵を保持するためのプログラムです。わからない方はとりあえずこのまま打てば大丈夫です。

②認証エージェントのプロセスIDが表示されます。わからない方はスルーして大丈夫です。

ssh-addをして、Github側からも見れるようにしましょう。

$ ssh-add ~/.ssh/id_rsa

説明していきます。

①ssh-addコマンドは認証エージェントに秘密キーを追加します。

認証エージェント:eval "$(ssh-agent -s)"コマンドでバックグラウンドで待ち構えていました。来いよ!オラっ!って感じで待機している状態に、ssh-addで飛び込んであげた感じです。

無事、成功すれば作成した秘密キーが管理対象に加えられて、Github ⇔ CentOS7間でやり取りができるようになります。


接続が出来るか確認

下記のコマンドで接続が出来るか試してください。

パスワードが求められた場合、初期に設定を行ったパスワードを入力してください。

$ ssh -T git@github.com

もしかすると下記の表示が行われるかもしれません。

The authenticity of host 'github.com (IP ADDRESS)' can't be established.

RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?: // YESを入力してください

要は、このアドレス信用できるの?

これから接続できるようになっちゃうけどいいんだよな?って意味です。先ほどのssh-agent君が注意喚起してくれています。

成功すると以下の表示が行われます。

Hi "ここにあなたの名前が入力されます"! You've successfully authenticated, but GitHub does not

provide shell access.

これで、接続が出来るようになりました。