ssh

4 개의 포스트

github3분 읽기큐레이션 요약

초보자를 위한 GitHub: 자주 묻는 질문에 대한 답변

이 글은 GitHub 초보자가 자주 묻는 SSH 키와 Personal Access Token(PAT)의 개념, 생성 방법, 보안상 주의점을 설명한다. SSH는 컴퓨터의 개인 키와 GitHub에 등록한 공개 키를 이용해 인증하며, PAT는 명령줄이나 API 접근에 사용하는 권한 기반 자격 증명이다. 글의 후반부에서는 병합과 리베이스 차이도 다룰 예정이지만, 제공된 내용은 해당 질문의 제목에서 끝난다. ## SSH 키의 개념과 역할 - SSH 키는 다음 두 파일로 구성된 키 쌍이다. - **개인 키(private key)**: 컴퓨터에 보관하며 절대 공유하지 않는다. - **공개 키(public key)**: GitHub 등에 등록해도 된다. - GitHub는 등록된 공개 키와 사용자의 컴퓨터에 있는 개인 키가 일치하는지 확인해 인증한다. - SSH를 설정하면 GitHub에 코드를 push하거나 pull할 때 비밀번호를 반복해서 입력하지 않아도 된다. ## SSH 키 생성 및 ssh-agent 등록 - 터미널에서 Ed25519 방식의 키를 생성한다. ```bash ssh-keygen -t ed25519 -C YOUR_EMAIL@DOMAIN.COM ``` - 저장 경로를 물으면 기본 경로를 사용하기 위해 Enter를 누른다. - 개인 키를 보호할 passphrase를 설정한다. - `ssh-agent`는 개인 키를 안전하게 보관해 매번 passphrase를 입력하지 않도록 돕는다. - 생성한 키를 agent에 추가한다. ```bash ssh-add ~/.ssh/id_ed25519 ``` ## 공개 키를 GitHub에 등록하기 - 공개 키 내용을 확인한다. ```bash cat ~/.ssh/id_ed25519.pub ``` - 출력된 한 줄 전체를 복사한다. - GitHub에서 다음 순서로 등록한다. - 프로필 사진 → **Settings** - 왼쪽 메뉴의 **SSH and GPG keys** - **New SSH key** - 기기를 식별할 수 있는 제목 입력 - 복사한 공개 키 붙여넣기 - **Add SSH key** 클릭 - 개인 키는 GitHub에 업로드하지 않고 로컬 컴퓨터에만 보관해야 한다. ## Personal Access Token(PAT)의 용도 - PAT는 GitHub 도구, 명령줄, GitHub API에서 사용하는 별도의 인증 자격 증명이다. - 토큰마다 접근 가능한 저장소와 권한을 지정할 수 있다. - 필요할 때 폐기(revoke)할 수 있으며, 만료일도 설정할 수 있다. - PAT는 생성 직후 한 번만 표시되므로 비밀번호 관리자 등 안전한 장소에 즉시 저장해야 한다. - 터미널에서 GitHub 비밀번호를 요구할 때 비밀번호 대신 PAT를 사용할 수 있다. ## Fine-grained PAT 생성 - GitHub의 **Settings → Developer settings → Personal access tokens → Fine-grained tokens**로 이동한다. - 토큰 이름과 용도를 설명하는 설명을 입력한다. - 만료일을 지정한다. - 토큰이 접근할 저장소를 전체 또는 특정 저장소로 제한한다. - 필요한 권한을 추가하고 각 권한을 읽기 전용 또는 읽기·쓰기 모드로 설정한다. - 생성 전 설정을 검토한 뒤 토큰을 생성한다. - 권한 범위를 좁게 설정하면 토큰이 유출되었을 때의 피해를 줄일 수 있다. ## Classic PAT 생성 - **Settings → Developer settings → Personal access tokens → Tokens (classic)**으로 이동한다. - **Generate new token (classic)**을 선택한다. - 토큰 이름과 만료일을 지정한다. - 필요한 scope를 선택한다. - 토큰을 생성한 뒤 표시되는 값을 안전하게 복사한다. - Classic 토큰은 권한 범위가 더 포괄적일 수 있으므로, 가능한 경우 필요한 저장소와 권한을 세밀하게 제한할 수 있는 fine-grained 토큰을 우선 고려하는 것이 좋다. ## 실용적인 보안 권장 사항 - SSH 개인 키와 PAT를 다른 사람에게 공유하지 않는다. - PAT에는 필요한 저장소와 최소 권한만 부여한다. - 토큰에는 만료일을 설정하고 더 이상 사용하지 않으면 폐기한다. - PAT는 비밀번호나 소스 코드에 직접 기록하지 말고 비밀번호 관리자나 안전한 시크릿 저장소에 보관한다. - 제공된 글에는 병합(merge)과 리베이스(rebase) 설명이 이어질 예정이지만, 해당 내용은 포함되어 있지 않다.

원문 읽기(새 탭에서 열림)
cloudflare원문

모두를 위한 보안 프라이빗 네트워킹: 사용자, 노드, 에이전트, Workers — Cloudflare Mesh를 소개합니다 (새 탭에서 열림)

AI 에이전트의 부상으로 기존의 인간 중심적인 VPN이나 SSH 터널은 자율적으로 작동하는 소프트웨어의 네트워크 접근 요구를 충족하기 어려워졌습니다. Cloudflare Mesh는 AI 에이전트, 서비스, 사용자 기기를 아우르는 통합 보안 프라이빗 네트워크를 제공하여, 복잡한 설정 없이도 내부 리소스에 안전하게 접근하고 가시성을 확보할 수 있도록 돕습니다. 이는 Cloudflare One의 제로 트러스트 보안 체계와 직접 통합되어, 개발자부터 기업용 워크로드까지 유연하게 확장 가능한 에이전트 중심의 네트워크 인프라를 실현합니다. ### 에이전트 중심 시대를 위한 네트워크의 변화 * **기존 방식의 한계:** VPN은 수동 로그인이 필요하고 SSH 터널은 설정이 번거로우며, 서비스를 공용 인터넷에 노출하는 것은 보안 위험이 큼. 특히 자율적으로 동작하는 AI 에이전트에게는 부적합한 방식임. * **Cloudflare Mesh의 도입:** AI 에이전트가 스테이징 DB나 내부 API에 직접 접근할 수 있도록 네트워크를 연결하며, Cloudflare Workers 및 Agents SDK와 통합되어 서버리스 환경에서도 프라이빗 리소스에 도달할 수 있게 함. * **단일화된 인프라:** Cloudflare One의 SASE 아키텍처를 기반으로 하며, 'Mesh 노드'(기존 WARP Connector)와 'Cloudflare One Client'를 통해 인간과 에이전트 트래픽을 모두 수용함. ### 주요 에이전트 워크플로우와 활용 사례 * **개인용 에이전트 원격 접속:** 모바일 기기에서 집 안의 홈 네트워크에 있는 AI 에이전트(예: Mac mini에서 실행 중인 모델)에 안전하게 접속. 인터넷 노출 없이 셸 접근 및 파일 시스템 제어가 가능함. * **코딩 에이전트의 스테이징 환경 접근:** 개발자 노트북의 코딩 에이전트(Cursor, Claude Code 등)가 프라이빗 클라우드 VPC 내의 스테이징 데이터베이스나 API 서버에 직접 쿼리를 날릴 수 있도록 연결함. * **배포된 에이전트와 내부 서비스 통합:** Cloudflare Workers 기반의 에이전트가 퍼블릭 인터넷에 노출되지 않은 내부 API 및 DB와 통신할 때, 세밀한 권한 제어와 감사 추적(Audit Trail)을 제공함. ### Cloudflare One 기반의 통합 보안 및 관리 * **글로벌 네트워크 활용:** 전 세계 330개 이상의 도시에 걸친 Cloudflare 네트워크를 통해 프라이빗 IP로 라우팅되어 높은 안정성과 통제력을 확보함. * **자동화된 보안 정책:** Gateway 정책, 디바이스 포스처(Posture) 체크, DNS 필터링 등이 Mesh 트래픽에 자동으로 적용되어 추가 설정 없이 보안 수준을 강화함. * **확장성 있는 기능 제공:** 초기 설정 후 필요에 따라 SSH/RDP 세션 관리, 브라우저 격리, 데이터 손실 방지(DLP) 및 SaaS 보안(CASB) 등 고급 제로 트러스트 기능을 점진적으로 도입할 수 있음. 프라이빗 네트워킹이 필요한 개발자나 기업은 Mesh를 통해 수 분 내에 네트워크를 구축하고 에이전트에게 안전한 통로를 제공할 수 있습니다. 단순한 터널링을 넘어 향후 제로 트러스트 보안의 전체 스택으로 마이그레이션 없이 확장 가능하다는 점이 큰 장점입니다. 특히 자율적인 AI 에이전트의 활동에 대한 보안 통제가 필요한 환경에 Cloudflare Mesh 도입을 강력히 권장합니다.

aws원문

Amazon Lightsail에서 자율 프라이 (새 탭에서 열림)

Amazon Lightsail에서 자율형 프라이빗 AI 에이전트인 OpenClaw를 정식으로 지원하며, 복잡한 설치 과정 없이 클릭 몇 번만으로 나만의 디지털 비서를 구축할 수 있게 되었습니다. OpenClaw는 사용자의 브라우저와 연동되어 메시징 앱 연결, 웹 브라우징, 파일 관리 등 단순한 질의응답 이상의 능동적인 태스크를 수행합니다. 특히 Amazon Bedrock이 기본 모델 공급자로 사전 구성되어 있어, 별도의 서버 설정 없이도 즉시 강력한 AI 기능을 활용할 수 있다는 것이 큰 장점입니다. ### OpenClaw와 Amazon Lightsail의 결합 * **자율형 프라이빗 AI 에이전트:** OpenClaw는 단순 챗봇을 넘어 이메일 관리, 웹 서핑, 파일 정리 등 실제 컴퓨터 작업을 대신 수행하는 오픈소스 디지털 비서입니다. * **손쉬운 배포 환경:** 기존에는 개인이 직접 설치하거나 EC2에 구성하는 과정이 까다로웠으나, 이제 Lightsail의 'Blueprints' 메뉴에서 OpenClaw를 선택하는 것만으로 자동 최적화된 인스턴스를 생성할 수 있습니다. * **다양한 채널 확장성:** 브라우저뿐만 아니라 WhatsApp, Discord, Telegram 등 주요 메시징 앱과 연결하여 모바일 환경에서도 AI 에이전트에게 명령을 내릴 수 있습니다. ### 설치 및 보안 브라우저 페어링 과정 * **인스턴스 사양 및 생성:** 최적의 성능을 위해 4GB 이상의 메모리 플랜을 권장하며, AWS 리전과 플랫폼(Linux/Unix)을 선택한 후 OpenClaw 청사진으로 인스턴스를 생성합니다. * **보안 연결(Pairing):** 대시보드 접근을 위해 브라우저와 인스턴스를 안전하게 연결해야 합니다. Lightsail의 SSH 터미널을 통해 생성된 대시보드 URL과 보안 액세스 토큰(Gateway Token)을 확인하여 브라우저에 등록합니다. * **장치 승인:** 터미널 창에서 페어링 요청에 대해 승인('y' 및 'a' 입력) 절차를 거치면 브라우저와 OpenClaw 인스턴스 간의 보안 연결이 완료됩니다. ### Amazon Bedrock 기반의 AI 기능 활성화 * **기본 모델 공급자:** OpenClaw 인스턴스는 Amazon Bedrock을 기본 모델로 사용하도록 사전 설정되어 있습니다. * **IAM 권한 설정:** Bedrock API에 접근하기 위해 AWS CloudShell에서 제공되는 전용 스크립트를 실행해야 하며, 이를 통해 인스턴스에 필요한 IAM 역할(Role)과 정책이 자동으로 구성됩니다. * **유연한 모델 활용:** Bedrock을 통해 제공되는 Anthropic Claude나 Cohere 등 다양한 타사 모델을 선택하여 목적에 맞는 성능을 구현할 수 있습니다. ### 운영 고려 사항: 비용 및 보안 * **비용 구조:** Lightsail 인스턴스에 대한 시간당 요금과 Amazon Bedrock 사용량에 따른 토큰 기반 비용이 별도로 발생합니다. 타사 모델 사용 시 추가 소프트웨어 비용이 발생할 수 있음을 유의해야 합니다. * **권한 제어:** 인스턴스에 부여된 IAM 권한을 커스터마이징할 수 있으나, 권한을 과도하게 제한할 경우 AI의 응답 생성이 중단될 수 있으므로 주의가 필요합니다. * **보안 유지:** 게이트웨이 인증 토큰은 비밀번호와 같으므로 외부에 노출되지 않도록 주의해야 하며, 주기적인 토큰 교체와 환경 변수 파일을 통한 관리가 권장됩니다. 나만의 안전한 AI 비서를 구축하고 싶다면 Amazon Lightsail의 OpenClaw를 활용해 보시기 바랍니다. 초기 설정 시 4GB 메모리 플랜을 선택하고, 제공되는 스크립트를 통해 Bedrock 권한 설정을 완료하는 것만으로도 강력한 자율형 에이전트 환경을 경험할 수 있습니다.

figma4분 읽기큐레이션 요약

Figma 내부 살펴보기:

Figma는 기존의 bastion host와 SSH 중심 접근을 AWS Systems Manager Session Manager 기반의 제로 트러스트 셸 접근 방식으로 전환했다. Okta·AWS SSO·WebAuthn·최소 권한 IAM 역할·단기 자격 증명을 결합해 인증과 권한을 중앙화하고, 세션 기록을 S3에 저장해 감사 가능성을 확보했다. 외부 보안 제품에 대한 의존성을 줄이면서도 기존 사용성을 유지하고 점진적으로 도입하는 것이 핵심 결론이다. ## 기존 Bastion Host 방식의 한계 - 프로덕션 환경 보호를 위해 엔지니어가 bastion host를 거쳐 SSH로 접속하는 방식이 널리 사용된다. - 그러나 bastion host는 공격자가 집중적으로 노리는 중요한 보안 통제 지점이다. - Figma는 규모가 커지면서 다음 문제가 커졌다고 설명한다. - 접근 권한 관리가 복잡해짐 - bastion host 자체의 보안 유지 비용 증가 - 사용자별 접근 추적과 감사의 어려움 - 운영 및 지원에 필요한 반복 작업 증가 ## 설계 목표 Figma 보안팀은 새로운 셸 접근 시스템을 다음 원칙에 맞춰 설계했다. - **원활한 사용자 경험** - 엔지니어가 보안을 우회하지 않고도 쉽게 사용할 수 있어야 한다. - 웹 콘솔과 터미널 CLI를 모두 지원한다. - **제로 트러스트** - 네트워크 내부에 있다는 이유만으로 신뢰하지 않고, 매번 사용자와 요청을 검증한다. - 외부 네트워크에 인스턴스를 노출하지 않는 구조를 지향한다. - **강력한 인증** - SSO를 강제한다. - 피싱에 강한 WebAuthn 기반 MFA와 디바이스 신뢰 검사를 적용한다. - 탈취된 자격 증명의 피해 범위를 줄이기 위해 단기 토큰을 사용한다. - **중앙 집중식 감사** - 사용자가 어떤 시스템에 접속했고 어떤 명령을 실행했는지 추적할 수 있어야 한다. - **운영 부담 최소화** - 구축과 배포가 단순하고 유지보수가 쉬워야 한다. - **점진적·하위 호환 가능한 도입** - 기존 사용 사례를 지원하면서 단계적으로 전환한다. - 갑작스러운 업무 중단이나 사용자 경험의 큰 변화를 피한다. ## 자체 구축을 선택한 이유 - Figma는 초기 검토 과정에서 Okta Advanced Server Access 같은 상용 제품을 평가했다. - 하지만 기존 사용 사례를 유연하게 지원하기 어렵고, 당시 회사 규모에서는 제품을 이용하기 어려운 경우도 있었다. - 외부 서비스 의존성이 핵심 엔지니어링 업무의 가용성 위험과 추가 복잡성을 만들 수 있다는 우려도 있었다. - 이미 AWS 서비스를 광범위하게 사용하고 있었기 때문에 AWS 구성 요소를 조합해 단순한 프로토타입을 만드는 방향을 택했다. ## Session Manager 기반 셸 접근 - AWS Systems Manager의 Session Manager를 사용하면 EC2 및 ECS 인스턴스에 셸 접근을 제공할 수 있다. - 인스턴스에 SSH 포트를 열거나 외부 네트워크에서 직접 접근 가능하게 만들 필요가 없다. - 인스턴스의 에이전트와 사용자의 AWS 콘솔·CLI 사이에 인증되고 암호화된 TLS 연결을 생성한다. - 지원 기능은 다음과 같다. - 명령 실행 - 대화형 셸 - SSH 세션 터널링 - 사람이 AWS SSO로 인증한 뒤 IAM 역할을 Assume하도록 구성해 권한을 중앙 관리할 수 있다. - 네트워크 경계나 bastion host의 보안에 의존하기보다 사용자 인증과 IAM 권한을 중심으로 접근을 통제한다. ## Okta와 AWS SSO를 이용한 인증·권한 관리 - Figma는 Okta를 SSO 제공자로 사용하고 AWS SSO와 연동했다. - 인증 과정에서 디바이스 신뢰와 WebAuthn MFA를 요구한다. - 인증이 끝나면 사용자는 최소 권한으로 제한된 전용 IAM 역할을 Assume한다. - AWS 접근 토큰은 단기 수명으로 발급해 장기 키가 유출됐을 때의 피해 범위를 줄인다. - Okta 그룹을 AWS SSO 그룹과 연동해 IT 팀이 그룹 단위로 접근 권한을 관리할 수 있다. - 사용자는 다음 두 방식으로 Session Manager를 이용할 수 있다. - AWS Systems Manager 콘솔을 통한 웹 기반 접속 - Figma가 제작한 간단한 CLI 도구를 통한 터미널 접속 ## 세션 기록과 감사 - Session Manager는 셸 세션의 transcript를 수집한다. - 기록은 암호화된 S3 버킷으로 전송된다. - 이를 통해 개인별 접속과 실행 작업을 사후 조사할 수 있다. - 중앙화된 로그는 보안 사고 대응, 내부 감사, 권한 오남용 조사에 활용될 수 있다. ## AWS SSO 디바이스 코드 피싱 위험 - AWS SSO의 디바이스 코드 인증은 별도의 피싱 위험을 가진다. - 공격자가 자신의 디바이스 인증 URL을 생성한 뒤 피해자가 해당 URL을 방문해 승인을 수행하도록 속일 수 있다. - 그러면 공격자가 피해자 계정의 액세스 토큰을 획득할 가능성이 있다. - Figma는 사용자가 예상하지 못한 SSO 페이지를 의심하도록 하는 것 외에도 모니터링과 경보를 추가적인 완화책으로 적용했다. ## 도입 시 고려할 점 - Session Manager를 적용하려면 EC2 또는 ECS 인스턴스에 관련 에이전트와 권한 구성이 필요하다. - IAM 정책은 셸 접근에 필요한 최소 권한만 부여하도록 설계해야 한다. - 외부 SSH 포트를 제거하더라도 IAM, SSO, 세션 로그, S3 저장소의 보안을 함께 관리해야 한다. - 기존 SSH 사용 사례와 사용자 업무 흐름을 고려해 웹 콘솔과 CLI를 함께 제공하는 것이 효과적이다. - 인증 우회나 피싱을 전제로 모니터링과 이상 행위 경보를 추가해야 한다. 실용적으로는 AWS 환경에서 bastion host를 새로 확장하기보다 Session Manager, AWS SSO, 최소 권한 IAM, 단기 자격 증명, 암호화된 세션 로그를 조합하는 방식을 우선 검토할 만하다. 다만 제로 트러스트는 특정 제품 도입만으로 완성되지 않으므로 IAM 정책과 로그 접근 권한, SSO 피싱 대응까지 함께 설계해야 한다.

원문 읽기(새 탭에서 열림)