GithubにSSHで接続し、リポジトリを作成する
今回はSSHを利用してGithubに接続し、リポジトリを作成します。SSH鍵の作成、Githubへの公開鍵の登録、SSHを利用してGithubへpushを行います。SSHの利点としては、httpsのようにいちいちパスワードを入力する必要が無い点ですね。
githubのアカウントは作成されている前提です。作成方法がわからない方はこちらへ
Githubのアカウント作成方法 - Qiita
鍵の作成
まずはsshの公開鍵と秘密鍵を作成します。
$ cd ~/.ssh $ ssh-keygen -t rsa -C your.email@sample.com Generating public/private rsa key pair. #ssh鍵を保存するディレクトリを設定する。何も入力しなければ ~/.sshに作成される Enter file in which to save the key (/home/tombo/.ssh/id_rsa): Enter passphrase (empty for no passphrase): #パスフレーズの入力 Enter same passphrase again: #パスフレーズの再入力 Your identification has been saved in /home/username/.ssh/id_rsa. Your public key has been saved in /home/username/.ssh/id_rsa.pub. The key fingerprint is: SHA256:.... your.email@gmail.com The key's randomart image is: +---[RSA 2048]----+ | ....| +----[SHA256]-----+
id_rsaが秘密鍵、id_rsa.pubが公開鍵です。
公開鍵暗号については下記が参考になります。
公開鍵暗号方式
秘密鍵のパーミッションをユーザのみが読み書きできるように変更しましょう。
$ chmod 600 id_rsa
さらに~/.ssh/configにgithubに接続する際の設定を登録しておきましょう。こうすることで、接続する際の設定をまとめて行うことができます。
ssh configに関しては下記記事が参考になります。
~/.ssh/configについて - Qiita
$ vim ~/.ssh/config Host github.com Hostname github.com Identityfile ~/.ssh/id_rsa User git
githubに公開鍵を登録
githubに公開鍵を設定します。
$ cat ~/.ssh/id_rsa.pub
と入力し、出力内容をコピーしておきます。
下記にアクセスして公開鍵の登録をします。
Sign in to GitHub · GitHub
またはアイコンをクリックして、Settingsを選択し、SSH and GPG keysを選択してください。
New SSH keyをクリックして、TitleとKeyを入力します。
Title: id_rsa.github.com.pub
Key: 先ほどcatしたもの
入力後、Add SSH keyをクリックして公開鍵を登録します。
試しにgithubにsshしてみましょう。
$ ssh -T git@github.com
ここで
The authenticity of host 'github.com (192.30.255.113)' can't be established. RSA key fingerprint is <フィンガープリント>.
とでる場合、下記記事が参考になります。
GitHubに入門(その1) - Qiita
対応策としては
$ eval `ssh-agent` Agent pid 22222 $ ssh-add ~/.ssh/id_rsa Enter passphrase for /home/username/.ssh/id_rsa: Identity added: /home/username/.ssh/id_rsa (/home/username/.ssh/id_rsa) $ ssh -T git@github.com Hi username! You've successfully authenticated, but GitHub does not provide shell access.
を実行します。
さらに、
Warning: Permanently added the RSA host key for IP address '192.30.255.112' to the list of known hosts.
が出る場合は下記記事が参考になります。
SSH接続でgit pushしたときに警告が出るやつへの対処法 - Qiita
この場合は
$ ssh-keygen -R 192.30.255.112
を実行します。
githubにリポジトリを作成する
githubにアクセスし、ユーザーアイコンの隣の+▼をクリックし、New repositoryを選択します。
リポジトリ名を入力してCreate repositoryをクリックします。
Repository name: testrepos
Description: test repository
次に表示される画面でgithubから新しいリポジトリの作成方法が案内されます。至れり尽くせりですね。
今回はSSHで接続するのでSSHをクリックします。基本的には案内通りでできますが、ここまでの流れで、まだディレクトリやファイルを作成していないので、作成します。
$ mkdir ~/testrepos
$ cd ~/testrepos
$ touch README.md
ここからはgithubの案内と同様です。
$ git init $ git add . #README.mdでも可 $ git commit -m "first commit" $ git remote add origin git@github.com:username/testrepos.git $ git push origin master
これで晴れてsshからgithubへpushすることができました。
参考サイト
qiita.com
Githubのアカウント作成方法 - Qiita
公開鍵暗号方式
~/.ssh/configについて - Qiita
GitHubに入門(その1) - Qiita
SSH接続でgit pushしたときに警告が出るやつへの対処法 - Qiita