장비는 밖으로 나가는 연결만 쓴다. 들어오는 포트를 열지 않고, 고정 IP 도 필요 없다. 장비에는 2.4MB 짜리 파일 하나가 서비스로 올라가고, 내 컴퓨터에는 실행 파일 하나가 놓인다.
오렌지파이 같은 리눅스 보드. systemd 가 있으면 배포판은 가리지 않는다 — 우분투·데비안·Armbian·라즈베리파이OS. CPU(aarch64 / armv7l / x86_64 / riscv64)는 알아서 가린다.
$ curl -fsSL https://install.dawoon.link/install.sh | bash
접속 비밀번호는 터미널에서 물어본다. 끝나면 9자리 장비 ID 를 찍어 주는데, 그걸 적어 둔다 — 다음 단계에서 쓴다.
장비에 들어갈 쪽. weDesk 를 깔 필요는 없고, 관리자 권한도 쓰지 않는다.
PS> irm https://install.dawoon.link/install.ps1 | iex
> curl -fsSL https://install.dawoon.link/install.cmd -o install.cmd && .\install.cmd && del install.cmd
$ curl -fsSL https://install.dawoon.link/install-ssh.sh | bash
$ curl -fsSL https://install.dawoon.link/install-ssh.sh | bash
맥·리눅스는 ~/.local/bin 에, 윈도우는 %LOCALAPPDATA%\Programs\weDesk 에 놓는다.
위 1번과 다른 명령이다 — 1번은 들어갈 장비용, 2번은 들어가는 컴퓨터용이다.
1번에서 받아 적은 9자리 ID 를 쓴다.
원격 스크립트를 셸에 파이프하는 건 편한 만큼 위험한 패턴이다. 그래서 네트워크에서 그대로
믿는 것은 체크섬 목록 하나(manifest.txt)뿐이고, 실행 파일과 systemd 유닛은
모두 그 목록과 해시가 맞아야 설치된다. 어긋나면 아무것도 설치하지 않고 멈춘다.
배포처는 https 만 허용한다 — 평문이면 체크섬 목록도 같이 바꿔치기할 수 있어 검증이 의미가 없다.
장비 curl -fsSL https://install.dawoon.link/install.sh | bash -s -- --uninstall 맥 · 리눅스 curl -fsSL https://install.dawoon.link/install-ssh.sh | bash -s -- --uninstall Windows PS $env:WEDESK_UNINSTALL=1; irm https://install.dawoon.link/install.ps1 | iex Windows cmd install.cmd --uninstall
저장해 둔 비밀번호와 주소 장부는 남긴다. 다시 깔면 그대로 쓰게 되고, 조용히 지우면 장비를 전부 다시 등록해야 한다. 지우는 명령은 제거할 때 화면에 찍어 준다.
비밀번호를 터미널에서 묻지 않게 하려면 환경변수로 넘긴다.
curl -fsSL https://install.dawoon.link/install.sh | WEDESK_PASSWORD='비밀번호' WEDESK_IP=100.100.25.7 bash
WEDESK_PASSWORD_SHA256 로 해시만 넘기면 평문이 ps 에 남지 않는다. WEDESK_ID 로 ID 를 고정할 수도 있다.
장비가 늘면 숫자 주소를 외우기 어렵다. 관리 사이트에서 장비마다 ssh 이름을 주고 동기화하면 ssh pi@barn1 로 들어간다.
wedesk-ssh --manage-url https://<관리사이트>/api --manage-token <토큰> --sync