구글 안티그래비티 완전 분석 — 모델·요금제·CLI 총정리

🚀 구글 안티그래비티(Antigravity) 완전 분석 구글이 2025년 11월 Gemini 3와 함께 공개한 에이전트 퍼스트(agent-first) IDE 안티그래비티는 Claude·GPT·Gemini를 한 도구에서 골라 쓰는 멀티모델 코딩 환경이다. 이 글에서는 ① 지원 모델과 요금제별 사용량의 실체, ② 실사용자 평가, ③ 구글의 방향성, ④ Claude Code와의 비교·연계, ⑤ CLI( agy )로 직접 쓰는 법까지 다섯 갈래를 차례로 정리한다. 자료 간 충돌이 있는 지점은 한쪽으로 단정하지 않고 양쪽을 모두 살려 표기했다. 📅 기준 시점: 2026년 6월 · 프리뷰 단계 정보로 수치는 변동 가능 1. 안티그래비티란 무엇인가 — 기초 정리 안티그래비티는 2025년 7월 구글이 24억 달러 규모 라이선스 계약 으로 영입한 전 Windsurf 팀이 설계를 주도했다. VSCode를 포크한 위에 자율 에이전트 오케스트레이션 계층을 얹은 구조다. 2026년 5월 Google I/O에서 발표된 안티그래비티 2.0 은 데스크탑 앱과 함께 공식 CLI agy 를 처음 공개하며 기존 Gemini CLI의 공식 후계자 자리를 확정했다. 핵심 정체성은 단순 코드 자동완성이 아니라 병렬 에이전트 오케스트레이션 이다. 여러 에이전트가 동시에 — 하나는 API, 하나는 테스트, 또 하나는 프론트엔드 — 작업을 나눠 진행하고, 각 에이전트는 계획·테스트 결과·스크린샷·영상을 담은 Artifact 를 남긴다. "사람이 한 줄씩 승인"하는 방식이 아니라 "에이전트들이 일을 마치고 사람이 사후 검수"하는 모델이다. flowchart TD A([사용자 작업 지시]) --> B[에이전트 A API 구현] A --> C[에이전트 B 테스트 작성] A --> D[에이전트 C UI 생성] B --> E[Artifact 계획·결과·영상] C --> E D --> E...

SSH: Your Secure Gateway to Remote Servers

SSH: Your Secure Gateway to Remote Servers

In the world of software development and system administration, securely accessing remote machines is a daily necessity. Whether you're deploying code to a server, managing databases, or troubleshooting issues on a development machine, SSH (Secure Shell) is your indispensable tool. It provides an encrypted channel over an unsecured network, ensuring your commands and data remain private.

Let's dive into what SSH is, how it works its magic, and how to navigate common challenges.

1. What is SSH and How Does it Work?

At its core, SSH operates on a client-server model. Your local machine runs an SSH client, while the remote machine runs an SSH server (daemon, often sshd). When you initiate an SSH connection, these two components engage in a sophisticated handshake:

  • Key Exchange: First, the client and server agree on a set of cryptographic algorithms to use. They then perform a key exchange (like Diffie-Hellman) to generate a shared secret key. This key is unique to that specific session and is never transmitted directly over the network.
  • Encryption: Once the shared secret is established, all subsequent data transmitted between the client and server is encrypted using this secret key. This ensures that even if someone intercepts the communication, they won't be able to read it.
  • Authentication: Before granting full access, the SSH server must verify your identity. This is where authentication methods come into play.

2. Gaining Access: SSH Authentication Methods

SSH offers several ways to authenticate users:

  • Password Authentication: This is the most straightforward method. You provide your username and password, and the server checks if they match its records. While easy to set up, it's vulnerable to brute-force attacks if weak passwords are used.
  • Public-Key Authentication: This is the highly recommended and more secure method. It relies on a pair of cryptographic keys:

    • Private Key: This key is generated on your local machine and must be kept secret. Never share it.
    • Public Key: This key is derived from your private key but can be safely shared. You typically upload your public key to the SSH server.

    How it works:
    1. You generate a public/private key pair on your local machine using ssh-keygen.
    2. You copy your public key to the remote server, usually into the ~/.ssh/authorized_keys file for your user account on that server.
    3. When you connect, the SSH server sends a challenge message encrypted with your public key.
    4. Your SSH client uses your private key to decrypt the challenge. If successful, the server knows it's you and grants access without needing your password.

    This method is more secure because it doesn't involve transmitting passwords over the network, and it allows for longer, more complex "passphrases" for your private key if desired.

3. Running Big Programs Remotely: Where Does the Power Come From?

When you connect to a remote machine using SSH and then run a program (e.g., ssh user@remote_server 'python my_big_program.py'), that program executes directly on the remote server.

This means:
* The remote server's CPU and RAM are utilized for the program's computation.
* Any disk I/O or network operations performed by the program happen from the remote server's perspective.
* Your local machine's resources are primarily used for running the SSH client, managing the encrypted tunnel, and displaying the output from the remote program.

This is incredibly powerful for leveraging dedicated server resources or running computationally intensive tasks without bogging down your local workstation.

4. Troubleshooting Common SSH Issues

Even with its robustness, SSH can sometimes present challenges. Here are a few common ones:

  • "Host key verification failed." Error:
    This is a crucial security feature. It means the SSH server's identity (its host key) has changed since you last connected. This could be due to a legitimate OS reinstallation on the server, or it could indicate a potential man-in-the-middle attack.

    How to fix it:
    1. Verify the change: If you know the server's OS was reinstalled or its configuration changed, the key change is likely legitimate.
    2. Remove the old key: On your local machine, you need to remove the old host key from your ~/.ssh/known_hosts file. The easiest way is using the ssh-keygen command:
    bash ssh-keygen -R <hostname_or_ip_address>
    Replace <hostname_or_ip_address> with the actual hostname or IP of the server you're trying to connect to.
    3. Reconnect: Now, try connecting again. SSH will detect the new host key and prompt you to verify and accept it. Type yes to continue.

  • Permission denied (publickey,password):
    This is a common authentication failure. It can occur for several reasons:

    • Incorrect username or password.
    • Your public key is not correctly installed in the remote user's ~/.ssh/authorized_keys file.
    • Incorrect file permissions on the remote server for your .ssh directory or authorized_keys file. The .ssh directory should have 700 permissions (drwx------), and the authorized_keys file should have 600 permissions (-rw-------).

    Solutions: Double-check your credentials, ensure the public key is correctly placed and has the right permissions on the server using chmod commands.

  • Connection refused:
    This typically means the SSH server isn't running on the remote machine, or it's not accessible on the port you're trying to connect to (default is port 22).

    • Solutions: Ensure the SSH service (sshd) is running on the server (e.g., sudo systemctl status sshd on Linux). Check if a firewall is blocking the port. If the server uses a non-standard port, you'll need to specify it: ssh -p <port_number> user@hostname.

5. Basic SSH Commands

Here are some fundamental commands for using SSH:

  • Connecting to a server:
    bash ssh username@hostname_or_ip_address
    Example: ssh alice@192.168.1.100

  • Connecting to a specific port:
    bash ssh -p <port_number> username@hostname_or_ip_address
    Example: ssh -p 2222 bob@myremoteserver.com

  • Copying files securely (SCP - Secure Copy):
    To copy a file from your local machine to the remote server:
    bash scp /path/to/local/file username@hostname_or_ip_address:/path/to/remote/destination
    To copy a file from the remote server to your local machine:
    bash scp username@hostname_or_ip_address:/path/to/remote/file /path/to/local/destination

  • Interactive file transfer (SFTP - SSH File Transfer Protocol):
    This provides an FTP-like interface over SSH for browsing and transferring files.
    bash sftp username@hostname_or_ip_address
    Once connected, you can use commands like put, get, ls, cd, etc.

SSH is a cornerstone of secure remote operations. By understanding its principles and mastering its common commands and troubleshooting steps, you can confidently navigate and manage your remote environments.

📚 참고 자료

댓글

이 블로그의 인기 게시물

Vim 9.2 릴리즈 총정리: 더 빠르고 강력해진 텍스트 편집의 제왕

폐쇄망 SoC 설계자를 위한 가볍고 빠른 Vim 최적화 가이드

에이전트 시대를 위한 터미널 cmux 가이드: 설치부터 AI 활용까지