서버 설정 없이 두 컴퓨터 사이에서 파일을 주고받는 방법
한쪽 컴퓨터에서 파일을 보내면, 다른 쪽에서 짧은 코드를 입력하기만 하면 됩니다. 로컬 서버를 세우거나 포트 포워딩을 설정할 필요 없이, 인터넷이 되는 곳이라면 어디서든 데이터를 주고받을 수 있습니다. croc은 파일 전송을 넘어, 암호화된 터미널 세션을 공유하는 기능까지 갖춘 명령줄 도구입니다.
설치 없이 바로 쓰는 브라우저 클라이언트
getcroc.com에서 브라우저로 croc를 실행할 수 있어, 별도 설치 과정 없이 파일을 주고받을 수 있습니다. 이 브라우저 버전은 명령줄 인터페이스와 완전히 호환되어, 한쪽이 웹이고 다른 쪽이 데스크톱 앱이어도 문제가 없습니다. 코드를 입력하는 방식이 동일하므로, 모바일 기기에서 QR 코드를 스캔해 파일을 받는 것도 가능합니다. 이러한 유연성은 네트워크 환경이 제한적인 상황에서 특히 유용합니다.
암호화와 연결 방식
croc은 PAKE(비밀번호 인증 키 교환)를 사용해 송신자와 수신자 사이에 비밀 키를 생성하고, 이를 통해 끝에서 끝까지 암호화된 전송을 보장합니다. 데이터는 우선 직접 연결을 시도하며, 이것이 불가능할 경우 릴레이 서버를 경유합니다. IPv6를 우선 사용하고 IPv4로 폴백하며, Tor와 같은 프록시를 통해 전송할 수도 있습니다. 이러한 구조 덕분에 방화벽 뒤의 컴퓨터에서도 비교적 쉽게 연결을 수립할 수 있습니다.
터미널 세션 공유 기능
Linux, macOS, FreeBSD, OpenBSD 환경에서는 croc ssh 명령으로 터미널 세션을 공유할 수 있습니다. 호스트는 읽기/쓰기 권한과 읽기 전용 권한을 가진 참여자를 위한 6단어 초대 코드를 각각 생성합니다. 이 방식은 SSH 데몬을 노출하거나 계정을 만들 필요 없이, 임시 WireGuard 경로를 통해 암호화된 터미널 접근을 제공합니다. 초대 코드를 가진 사람은 지정된 권한 내에서 터미널을 사용하며, 원격 명령 실행이나 파일 전송(SFTP)은 비활성화되어 있습니다.
파일 저장 및 임시 공유
즉시 전송이 어려운 경우, croc store 명령으로 파일을 클라이언트 측에서 암호화해 서버에 업로드할 수 있습니다. 이 방식은 브라우저 링크와 CLI 토큰을 생성하며, 설정한 유효 기간이나 다운로드 횟수 제한이 적용됩니다. 링크의 해시 부분에는 복호화 키가 포함되어 있어, 서버는 암호화된 데이터만 저장하고 원본 내용을 알 수 없습니다. 전송자는 로컬에 저장된 취소 영수증을 이용해 유효한 전송을 언제든 삭제할 수 있습니다.
사용 전 확인 사항
croc은 Go 언어로 작성되어 있으며, 소스에서 빌드하려면 Go 1.27 이상이 필요합니다. 대부분의 운영체제에서 패키지 매니저나 설치 스크립트를 통해 쉽게 설치할 수 있지만, Alpine Linux의 경우 커뮤니티 저장소를 활성화해야 합니다. 또한, 터미널 공유 기능은 특정 유닉스 계열 운영체제에서만 지원되며, 초대 코드는 비밀로 취급해야 합니다.