Weekly Learnings
今週の学びのメモです。
- git clone で認証入力省略
- ポートが既に使われているとき
git clone で認証入力省略
git clone するときには対象リポジトリの URL を GitLab とか GitHub の GUI からコピーしてきます。

HTTPS を利用していると認証のユーザー名とパスワードの入力が求められてちょっと手間です。
SSH ができればいいのですが、VPS 上の Docker で運用している都合で SSH のポート番号がデフォルトではありません。
(デフォルトはホストが使用しているので。)
デフォルトでないと、git clone の時にポート番号を書き足さなくてはならなくてこれも面倒です。
認証情報の自動入力
ホームディレクトリに .netrc ファイルを用意して必要な情報を設定しておくと git clone の時に自動で認証してくれます。
machine example.com
login your-username
password your-Personal-Access-Token
- machine: 接続するホスト名
- login: ユーザー名
- password: パスワード(Personal Access Token)
※パスワードはログインのパスワードではなくて Personal Access Token を作成して利用します。
Personal access tokens | GitLab Docs
ホストが複数ある場合は、.netrc ファイル内に machine, login, password の 3 点セットで複数記述することも可能。
.netrc ファイルは平文でパスワードを記述することになるので取り扱いに十分注意する。
アクセス権限を設定しておく。
$ chmod 600 ~/.netrc
libcurl を利用している
.netrc は Git の固有の設定ファイルというわけではありません。
Git はファイルの転送に libcurl を利用しているそうで .netrc ファイルは libcurl の方の仕組みを利用しています。
libcurl を利用しているツールでは同じ仕組みが利用できそうなので、.netrc ファイルのことを頭の隅に置いておく。
curl - How To Use
curl コマンドでも .netrc が利用できます。
(追記)Personal Access Token の期限切れに注意
何日か経つと Personal Access Token は期限切れになる。
git clone しようとすると Username と Password を聞かれるようになる。こうなると期限切れとなった可能性が高い。
ログインに失敗して以下のようなメッセージが表示される。
remote: HTTP Basic: Access denied. If a password was provided for Git authentication, the password was incorrect or you're required to use a token instead of a password. If a token was provided, it was either incorrect, expired, or improperly scoped.
改めて Personal Access Token を作成して .netrc ファイルを更新しておく。
ポートが既に使われているとき
Web サービスを起動してみたらポートが既に使われている、となったときの調べ方。
$ sudo lsof -i :<ポート番号>
これでポートを利用しているプログラムがわかります。
(でも大概は Docker です・・・。)