5:[LOCAL]公開キーを生成取得
IDとメールアドレスを設定
キーの生成と設定
#!/bin/bash
#com.cocolog-nifty.quicktimer.icefloe
#################################################
##USER_NAME ユーザー名を設定【1】
STR_USR_NAME="XXXXXXX"
##USER_EMAIL ユーザーEmailを設定【2】
STR_USR_EMAIL="foo@hoge.com"
##リポジトリ名 を設定【3】
STR_REPOSITORY="XXXXXXX"
#################################################
##同期するURL
STR_URL="https://github.com/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_URL"
##ローカルフォルダ
STR_CLONE_DIR="$HOME/Developer/GitHub/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_CLONE_DIR"
##コンテナディレクトリ
STR_CONTAINER_DIR="$HOME/Developer/GitHub/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_CONTAINER_DIR"
##ローカルフォルダを作っておく
/bin/mkdir -p "$STR_CLONE_DIR"
#ルートのアクセス権を700にしておく
/bin/chmod 700 "$HOME/Developer"
#作業CLONE先のコンテナのアクセス権はお好みで
/bin/chmod 750 "$HOME/Developer/GitHub"
#################################################
##
/usr/bin/cd "$STR_CLONE_DIR"
pushd "$STR_CLONE_DIR" && /usr/bin/git remote -v
#################################################
##
/bin/echo "現在の設定を表示します"
pushd "$STR_CLONE_DIR" && /usr/bin/git config -l
#################################################
##
/bin/echo "IDとアドレスを登録"
/usr/bin/git config --global user.name "$STR_USR_NAME"
/usr/bin/git config --global user.email "$STR_USR_EMAIL"
##
/bin/echo "設定後の内容を表示します"
pushd "$STR_CLONE_DIR" && /usr/bin/git config -l
#################################################
STR_BRANCH=$(/usr/bin/git config init.defaultbranch)
/bin/echo "ブランチ名:""$STR_BRANCH"
/bin/echo "サンプルスクリプト"
/bin/echo "/usr/bin/git push -u origin ""$STR_BRANCH"
#全体設定する場合
# /usr/bin/git config --global core.excludesfile "$HOME/.gitignore_global"
# /bin/echo "# .gitattributes\n.DS_Store binary -merge -diff -text\n" > "$HOME/.gitignore_global"
exit 0
キーの生成と設定
#!/bin/bash
#com.cocolog-nifty.quicktimer.icefloe
#################################################
##USER_NAME ユーザー名を設定【1】
STR_USR_NAME="XXXXXX"
##USER_EMAIL ユーザーEmailを設定【2】
STR_USR_EMAIL="foo@hoge.com"
##リポジトリ名 を設定【3】
STR_REPOSITORY="XXXXXX"
##
#################################################
/bin/echo "SSHキーの確認"
/bin/ls -al $HOME/.ssh
#################################################
/bin/echo "既存の SSH キーの確認"
if [ -f "$HOME/.ssh/id_ed25519.pub" ]; then
/bin/echo "id_ed25519.pubがあります"
STR_PUB_KYE=$(/bin/cat "$HOME/.ssh/id_ed25519.pub")
if [[ $STR_PUB_KYE == *"$STR_USR_EMAIL"* ]]; then
/bin/echo "すでに対象のメールアドレスでIDがあります"
/bin/echo "id_ed25519.pubは公開キーです内容を表示します"
/bin/cat "$HOME/.ssh/id_ed25519.pub"
/bin/echo "↑この1行を"
/bin/echo "https://github.com/settings/keys"
/bin/echo "↑このページのSSH keysにNewSSHKEYから付与してください"
else
/bin/echo "対象のメールアドレスが含まれていません"
STR_DATE=$(/bin/date +'yyyyMMdd')
/usr/bin/ditto "$HOME/.ssh/id_ed25519.pub" "$HOME/.ssh/id_ed25519.$STR_DATE.pub"
/usr/bin/ditto "$HOME/.ssh/id_ed25519" "$HOME/.ssh/id_ed25519.$STR_DATE"
USER_HOSTNAME=$(/bin/echo "$STR_PUB_KYE" | awk '{print $NF}')
/usr/bin/ditto "$HOME/.ssh/id_ed25519.pub" "$HOME/.ssh/id_ed25519.$USER_HOSTNAME.pub"
/usr/bin/ditto "$HOME/.ssh/id_ed25519" "$HOME/.ssh/id_ed25519.$USER_HOSTNAME"
/bin/echo "id_ed25519ファイルをバックアップしました"
/bin/echo "ターミナルからコマンドを実行して生成してください"
/bin/echo "pushd "$HOME/.ssh" && /usr/bin/ssh-keygen -t ed25519 -C "$STR_USR_EMAIL""
fi
else
/bin/echo "id_ed25519.pubがありませんでした"
/bin/echo "ターミナルからコマンドを実行して生成してください"
/bin/echo "pushd "$HOME/.ssh" && /usr/bin/ssh-keygen -t ed25519 -C "$STR_USR_EMAIL""
fi
#################################################
/bin/echo "SSHの設定"
/usr/bin/touch "$HOME/.ssh/config"
/usr/bin/ditto "$HOME/.ssh/config" "$HOME/.ssh/config.backup"
/bin/echo "Host github.com" >"$HOME/.ssh/config"
/bin/echo " AddKeysToAgent yes" >>"$HOME/.ssh/config"
/bin/echo " UseKeychain yes" >>"$HOME/.ssh/config"
/bin/echo " IdentityFile ~/.ssh/id_ed25519" >>"$HOME/.ssh/config"
/bin/echo " " >>"$HOME/.ssh/config"
#################################################
/bin/echo "SSHパーミッション・アクセス権チェック"
/bin/chmod 700 "$HOME/.ssh"
/bin/chmod 600 "$HOME/.ssh/config"
/bin/chmod 600 "$HOME/.ssh/id_ed25519"
/bin/chmod 600 "$HOME/.ssh/id_ed25519.pub"
/bin/chmod 600 "$HOME/.ssh/id_rsa"
/bin/chmod 600 "$HOME/.ssh/id_rsa.pub"
#################################################
##同期するURL
STR_URL="https://github.com/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_URL"
##ローカルフォルダ
STR_CLONE_DIR="$HOME/Developer/GitHub/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_CLONE_DIR"
/bin/cd "$STR_CLONE_DIR"
/bin/echo "認証用のヘルパを表示"
pushd "$STR_CLONE_DIR" && /usr/bin/git config credential.helper
pushd "$STR_CLONE_DIR" && /usr/bin/git config --local credential.helper
pushd "$STR_CLONE_DIR" && /usr/bin/git config --global credential.helper
pushd "$STR_CLONE_DIR" && /usr/bin/git config --system credential.helper
/bin/echo "キーの登録"
/usr/bin/ssh-add --apple-use-keychain "$HOME/.ssh/id_ed25519"
/bin/echo "キー設定"
pushd "$STR_CLONE_DIR" && /usr/bin/git config --global credential.helper osxkeychain
pushd "$STR_CLONE_DIR" && /usr/bin/git config --global user.name "$STR_USR_NAME"
pushd "$STR_CLONE_DIR" && /usr/bin/git config --global user.email "$STR_USR_EMAIL"
pushd "$STR_CLONE_DIR" && /usr/bin/git config --global url."ssh://git@github.com".insteadOf "https://github.com"
###
| 固定リンク
「github」カテゴリの記事
- 5:[LOCAL]公開キーを生成取得(2024.02.14)
- 10:[LOCAL]PUSH(2024.02.02)
- 9:[LOCAL]commit(2024.02.03)
- 8:[LOCAL]add(2024.02.04)
- 7:[LOCAL]CLONE(2024.02.05)