読者です 読者をやめる 読者になる 読者になる

まじめにゆいがどくそん

仕事関連の真面目な記事が満載です、多分。

gitにsshで接続(ポートと秘密鍵を指定)

Ubuntu ssh git

例えば、gitのリモートリポジトリに、ポート22222で公開しているssh経由でユーザーhogeが接続する場合、

git clone ssh://hoge@remote.server:22222/home/repositories/remote.git

てな感じでアクセスできます。
パスワード認証ではなく鍵認証している場合、秘密鍵のファイル名がデフォルトの「id_rsa」であるならば、上記のままでアクセス可能です。

しかし、運用上の都合で秘密鍵が「id_rsa」以外にも複数存在している、なんてことありがちですよね?

このような場合、サーバーごとの秘密鍵の名前を示すための設定ファイルを作成しましょう。

ついでに接続ポートも設定可能です。

※2014-04-28 GitHub用の設定例を追記

設定ファイル作成

下記の内容で ~/.ssh/config ファイルを作成します。複数のサーバー設定を記載可能です。

Host my.remote.server
    HostName hoge.example.jp
    User hoge
    IdentityFile ~/.ssh/id_rsa.hoge
    Port 22222

Host my.office.server
    HostName 192.168.1.222
    User hogehoge
    IdentityFile ~/.ssh/id_rsa.office.server
    Port 22
  • 「Host」……任意の名前でOK。エイリアスとして使用。
  • 「HostName」……接続するサーバーのIPアドレスFQDN
  • 「User」……自分のID。
  • 「IdentityFile」……秘密鍵のパス。
  • 「Port」……SSHのポート。

configファイル作成後は下記のコマンドで接続できます。

git clone ssh://my.remote.server/home/repositories/remote.git

~/.ssh/config はすべてのSSH接続で共有

なお、~/.ssh/config の設定は、gitに限らず、すべてのssh接続で参照されます。

ということは、単純にサーバーへSSH接続するだけなら、上記の設定の場合、

# hoge.example.jpへssh接続
ssh my.remote.server

# 192.168.1.222へssh接続
ssh my.office.server

だけで済んじゃいます。

2013-09-24 追記

「設定ファイル作成」の説明が紛らわしかったため修正

GitHubにid_rsa以外の名前の秘密鍵で接続(2014-04-28 追記)

GitHub用の秘密鍵の名前を id_rsa 以外にしたい場合は下記の設定を ~/.ssh/config に記述してください。

Host github.com
    HostName github.com                        # 固定値
    User git                                   # 固定値
    IdentityFile ~/.ssh/id_rsa.github.nilfigo  # GitHub用秘密鍵
    Port 22                                    # 固定値

GitHubへのアクセスは通常通り「git@github.com:...」でOKです。

git clone git@github.com:nilfigo/nilfigo.github.io.git


開発効率をUPする Git逆引き入門

開発効率をUPする Git逆引き入門

  • 作者: 松下雅和,船ヶ山慶,平木聡,土橋林太郎,三上丈晴
  • 出版社/メーカー: シーアンドアール研究所
  • 発売日: 2014/04/09
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (4件) を見る

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

Gitポケットリファレンス

Gitポケットリファレンス

広告を非表示にする