LoginSignup
21

More than 5 years have passed since last update.

posted at

updated at

gitlabにSSH公開鍵を設定する

こんにちは、@pompom0c0 です。
gitlabからcloneするときに、HTTPからだとPermission denied (publickey)エラーが発生するので、
SSHの設定をしたときのまとめです。

1. 公開鍵と秘密鍵を生成

ホームディレクトリに.sshディレクトリを作成し、公開鍵と秘密鍵を生成します。

$ cd
$ mkdir .ssh
$ ssh-keygen

デフォルトの設定では、
公開鍵: ~/.ssh/id_rsa.pub
秘密鍵: ~/.ssh/id_rsa

と命名されています。秘密鍵は絶対に流出させないようにしましょう。
流出したら新しく作り直して、サーバーに登録した公開鍵も更新しましょう。

2. 秘密鍵をキーチェインに登録する(Mac限定)

Macの方がセキュリティが厳しいため、ログインする際に毎回パスワードを聞かれます。
キーチェインに登録すれば、パスワード入力を省略できるので、乗っ取られるリスクの少ない人はぜひ設定しましょう。

$ openssl rsa -in id_rsa -out id_rsa2

id_rsa2のファイルにパスワードが登録されたので、このファイルをid_rsaに名前変更します。
(元のid_rsaファイルは念のためにバックアップを取っておくと良いです。)

3. ファイルやディレクトリのアクセス権を変更

id_rsaの所有者に読み込みと書き込みの権限をつけます。

$ chmod 600 id_rsa

4. gitlabに公開鍵を設定

公開鍵をgitlabにコピー&ペーストします。この時、vimからマウス操作でやるとスペースなどが混入することが多いので、
pbcopyコマンドか、テキストエディタからコピーするといいです。

$ cat id_rsa.pub | pbcopy

gitlabのProfile Settings > SSH Keysに飛び、Keyに公開鍵を貼ります。
Titleはid_rsa.pubでも、なんでも大丈夫です。

ssh-image01.png

Add Keyを押して完成です。

まとめ

HTTPでcloneもできなくはないのですが、SSHの方が安全ですし、
Permission denied (publickey)エラーが発生した時困ると思うので、早めに設定しておくことをオススメします:)

参考記事

ssh公開鍵認証設定まとめ
http://qiita.com/ir-yk/items/af8550fea92b5c5f7fca

Linuxコマンド集【 chmod 】 ファイルやディレクトリのアクセス権を変更する
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230728/

Macな人は pbcopy が便利
http://qiita.com/mktakuya/items/c57a12b5b072a658acd0

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
What you can do with signing up
21