Skip to content

Instantly share code, notes, and snippets.

@sknjpn
Created July 1, 2025 02:07
Show Gist options
  • Select an option

  • Save sknjpn/3a58f3ff790bcc163064e9e525928c2c to your computer and use it in GitHub Desktop.

Select an option

Save sknjpn/3a58f3ff790bcc163064e9e525928c2c to your computer and use it in GitHub Desktop.
SSH公開鍵をauthorized_keysに追加するスクリプト
#!/bin/bash
# SSH公開鍵をauthorized_keysに追加するスクリプト
# Author: sknjpn
# Usage: bash add-authorized-key.sh
set -e
# 追加する公開鍵
PUBLIC_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCr7um5NdaY6G5Pd4OEuxwOjkdyD8evn6E4vaZDggKrr7AahcrVY824YhXO7iHAK7QSTG7nOOtfRtR9rkDXz4EpR5R+aNBdLHdi0ho2O0lxzxTyKYrnNXes9i8ME4iyPDpIgdytU9BO5dAw5Mdej0XbBAO4lNJrChh1SACK4Kt7Wy1Q59SgpXUIyQ6I9He43dL2vFt7JDPiI2XPn0qh2esZvvtu9KrD8d+XOf4t0Njb0qBovc2JdcUAzLYArDBjFtp8myF+kdkU2rxT+N96g4UWrUf3pl9RwatV87O66xSIAxO6WtJOtTCdDbeaJl/tieigekq9UoWLRSPHMHDUFq7ZKHiTqsQcbSH83/0sxu8FVqp7PJw8VkswQs/jzZRJL3le+2kObkPKSEH+/lS2beUnVaijXO99SrxsiBNzhpBDSQhkCptu1C3su55Wgl3Bt9I3sGrdzKxzM58eVf8m3ia0JKl4EkJ6Uf2tY3UnIoajTIj21ibK9t3uiIpd8cWSKEk= sknjpn@skndev"
# カラー出力の定義
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${BLUE}=== SSH公開鍵追加スクリプト ===${NC}"
echo -e "${BLUE}このスクリプトは以下の公開鍵をauthorized_keysに追加します:${NC}"
echo
echo -e "${YELLOW}$PUBLIC_KEY${NC}"
echo
# 確認
read -p "続行しますか? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo -e "${RED}処理を中止しました。${NC}"
exit 1
fi
# ~/.sshディレクトリの作成
SSH_DIR="$HOME/.ssh"
if [ ! -d "$SSH_DIR" ]; then
echo -e "${YELLOW}~/.ssh ディレクトリを作成しています...${NC}"
mkdir -p "$SSH_DIR"
chmod 700 "$SSH_DIR"
fi
# authorized_keysファイルのパス
AUTHORIZED_KEYS="$SSH_DIR/authorized_keys"
# authorized_keysファイルの作成(存在しない場合)
if [ ! -f "$AUTHORIZED_KEYS" ]; then
echo -e "${YELLOW}authorized_keys ファイルを作成しています...${NC}"
touch "$AUTHORIZED_KEYS"
chmod 600 "$AUTHORIZED_KEYS"
fi
# 既に登録されているかチェック
if grep -Fxq "$PUBLIC_KEY" "$AUTHORIZED_KEYS"; then
echo -e "${YELLOW}この公開鍵は既にauthorized_keysに登録されています。${NC}"
exit 0
fi
# 公開鍵を追加
echo -e "${YELLOW}公開鍵をauthorized_keysに追加しています...${NC}"
echo "$PUBLIC_KEY" >> "$AUTHORIZED_KEYS"
# ファイル権限の設定
chmod 600 "$AUTHORIZED_KEYS"
chmod 700 "$SSH_DIR"
echo -e "${GREEN}✅ 公開鍵の追加が完了しました!${NC}"
echo -e "${GREEN} ファイル: $AUTHORIZED_KEYS${NC}"
echo
# 結果の確認
echo -e "${BLUE}=== 現在のauthorized_keys ===${NC}"
cat -n "$AUTHORIZED_KEYS"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment