LoginSignup
0

More than 1 year has passed since last update.

posted at

updated at

Git専用SSH公開鍵の作成

通常,SSH公開鍵の作成はここの手順で行う.この場合の公開鍵は他のサービスでも使うかもしれず共用のものとなる.
ここではGit専用のSSH公開鍵を作成し,仮に再作成した場合でも他のサービスに影響がないようにする.

SSH設定

SSH公開鍵の作成

鍵タイプrsa,鍵のファイル名をgitlab(公開鍵:gitlab.pub,秘密鍵:gitlab)とした場合のコマンドは以下のようになる.

$ ssh-keygen -t rsa -f ~/.ssh/gitlab

rsaはデフォルトなので-t rsaはいらないかもしれない.
ちなみにさらに色々書くと以下のようになる.

$ ssh-keygen -t rsa -f ~/.ssh/gitlab -b 2048 -C "メールアドレス"

以下のコマンドで鍵ファイルが作成されていることを確認する.

$ ls ~/.ssh/

利用のための設定

設定ファイルは以下となる.

  • ~/.ssh/config

configファイルの最後に以下を追記する.configファイルがなければ新規作成して以下を記載する.

config
HOST gitlab.mylab.ac.jp
  HostName gitlab.mylab.ac.jp
  IdentityFile ~/.ssh/gitlab
  User git

ここで接続先となるGitLabは便宜的に以下のようにしている.実際に使用している名前に置き換えること.

  • GitLabのFQDN
    • gitlab.mylab.ac.jp

config各行の説明は以下のとおり.

  • HOST [接続名]
    • 使用する接続名.例えば ssh gitlab.mylab.ac.jp で設定どおりの接続が可能.
  • HostName [接続先FQDN or 接続先IP]
    • 接続先の指定.
  • IdentityFile [秘密鍵]
    • 秘密鍵の指定.
    • windowsだと,"IdentifyFile"かもしれない.
  • User [User名]
    • 接続ユーザを指定.ssh user@接続先のuserに相当.git cloneで使用するのでgitを指定.
  • その他
    • Port [ポート番号]
      • ポート番号も指定可.

GitLabでの設定

ここの手順にもあるように,作成したgitlab.pubの中身をGitLab上の然るべきところに張り付けておく.

困ったときに

git@なのにパスワードを求められる.

httpsアクセスではなくsshアクセスで,公開鍵も設定しているのにパスワードを求められる場合に考えられること.

研究室内からみたgitlabのIPと研究室外からみたgitlabのIPがdnsのせいで異なっていたりする.この場合,configのHostNameがFQDNだと研究室外からpush出来なかったりする.

解決方法

~/.ssh/configのHostNameをIPで指定する.

解決できたか確認

以下のコマンドで,パスワードを求められず,Welcome なんとか!などのメッセージが出てればOK

terminal
$ ssh -vT git@[gitlabのFQDN]

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
0