大根's ITブログ

ITとか開発ツールとかビジネスとか色々

ssh関連のメモ

GitHubSSH接続とかするのでそれ関連のメモです。 (いいかげんメモろう)

公開鍵と秘密鍵のペアを作成

鍵のペアをRSA暗号化方式、4096ビットで生成する。

$ ssh-keygen -t rsa -b 4096 -C "メールアドレス"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/dmorishita/.ssh/id_rsa): /home/<username>/.ssh/id_rsa_github
Enter passphrase (empty for no passphrase):    //入力
Enter same passphrase again:                  //入力
Your identification has been saved in /home/<username>/.ssh/id_rsa_github
Your public key has been saved in /home/<username>/.ssh/id_rsa_github.pub
The key fingerprint is:
(省略)

秘密鍵と公開鍵が作成される。(消すときは本ファイルを消せばおK)

$ ls ~/.ssh
id_rsa_github  id_rsa_github.pub

毎回パスフレーズを入力しなくていいよう、ssh agent(認証鍵を保存するプログラム)に鍵を追加しておく。

ssh-agentを起動する。

$ eval `ssh-agent`
Agent pid 131
$ ps xf | grep ssh-agent  //動作確認
  131 ?        Ss     0:00 ssh-agent
$ ssh-add -l    //何も保存されていない確認
The agent has no identities.

鍵を追加する。

$ ssh-add ~/.ssh/id_rsa_github
Enter passphrase for /home/<username>/.ssh/id_rsa_github:
Identity added: /home/<username>/.ssh/id_rsa_github (xxxx@gmail.com)
$ ssh-add -l    //確認
4096 SHA256:********************* xxxx@gmail.com (RSA)

※参考:ssh-agentを止めるとき

$ ssh-agent -k
unset SSH_AUTH_SOCK;
unset SSH_AGENT_PID;
echo Agent pid 131 killed;

GitHub の settings > SSH and GPG keys > New SSH key で公開鍵(.pub)の内容を張り付ける。Titleは適当。

動作確認する。最初はknown_hostsに追加するか聞かれる。

$ ssh -T git@github.com

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes  //入力
Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.
$ ls .ssh    //known_hostsができる
id_rsa_github  id_rsa_github.pub  known_hosts

※参考:鍵の更新などがあった場合には ssh-keygen -R にて削除する。

$ ssh-keygen -R github.com
# Host github.com found: line 1
/home/<username>/.ssh/known_hosts updated.
Original contents retained as /home/<username>/.ssh/known_hosts.old
$ ls .ssh
id_rsa_github  id_rsa_github.pub  known_hosts  known_hosts.old

git clone する

$ git clone git@github.com:square/okhttp.git
Cloning into 'okhttp'...
remote: Enumerating objects: 129913, done.
remote: Counting objects: 100% (83/83), done.
remote: Compressing objects: 100% (54/54), done.
remote: Total 129913 (delta 20), reused 63 (delta 13), pack-reused 129830
Receiving objects: 100% (129913/129913), 46.51 MiB | 7.86 MiB/s, done.
Resolving deltas: 100% (64548/64548), done.