barrier를 사용하여 Linux·macOS 간에 키보드·마우스·키보드 공유
8390 단어 MacOSArch Linuxbarriertech
다음 필자의 환경[1]에 따라 설명하자면 맥OS 이외의 호스트를 사용하는 경우,Arch Linux 이외의 리눅스를 사용하는 경우도 마찬가지다.
graph Keyboard -->|USB| MacBookPro TrackPad -->|USB| MacBookPro MacBookPro["MacBookPro (a.local)"] -->|DisplayPort on USB-C| ディスプレイ LinuxPC["Arch Linux PC (b.local)"] -->|DisplayPort| ディスプレイ MacBookPro -->|barrier| LinuxPC
以下、SERVER側のhostnameをa.local, clientのhostnameをb.localと仮定するので、適宜読み替えてください
Arch Linux의 설정
ここでは、startxで直接Xを立ち上げるようにします。display managerを使う場合は、greeterでもbarrierが立ち上がるようにすれば良いのですが、sshでloginできるサーバーを操作するのにgreeterを操作しなければいけないの面倒なので、私はやっていません。
-
Avahiを使ってa.localで名前解決ができるようにしておく:[2] https://wiki.archlinux.org/title/avahi#Hostname_resolution
-
barrierをインストールする
sudo pacman -S barrier
-
~/.xinitrc가 없으면 템플릿은/etc/X11/xinit/xinitrc에 복사해서 가져옵니다cp /etc/X11/xinit/xinitrc ~/.xinitrc
-
~/.xinitrc의 마지막 편집
다음으로 바꾸기:.twm & xclock -geometry 50x50-1+1 & xterm -geometry 80x50+494+51 & xterm -geometry 80x20+494-0 & exec xterm -geometry 80x66+0+0 -name login
/usr/bin/barrierc --enable-crypto --name b.local --no-daemon a.local 2>&1 >>~/.local/share/barrier/barrier.log & exec i3
-
Client 인증서 및 Finger Print 설정mkdir -p .local/share/barrier/SSL/Fingerprints/ openssl req -x509 -nodes -days 365 -subj /CN=Barrier -newkey rsa:4096 -keyout ~/.local/share/barrier/SSL/Barrier.pem -out ~/.local/share/barrier/SSL/Barrier.pem echo "v2:sha256:$(openssl x509 -fingerprint -sha256 -noout -in ~/.local/share/barrier/SSL/Barrier.pem | cut -d= -f2)" > ~/.local/share/barrier/SSL/Fingerprints/Local.txt
-
시작 X [3]sudo systemd-run --unit=x-$USER --property PAMName=login --property User=$USER --property StandardInput=tty --property TTYPath=/dev/tty8 /bin/bash -c 'chvt 8 && exec startx'
-
hostname 확인$ hostname a.local
-
barrier 설치
또는 수동https://github.com/debauchee/barrier/releases/에서 다운로드 및 설치brew install --cask barrier
-
Barrier.응용 프로그램을 시작합니다. -
“Barrier” would like to control computer using accessibility features. 대화상자가 나타나면 Open System Preference가 승인합니다. -
Do you want the application “Barrier.app” to accept incoming network connections?그렇게 물어보면 허락해. -
Barrier를 서버로 설정합니다. -
Barrier의 GUI가 SSL Fingerprint:Diables인 경우 다음과 같습니다[4].openssl req -x509 -nodes -days 365 -subj /CN=Barrier -newkey rsa:4096 -keyout ~/Library/Application\ Support/barrier/SSL/Barrier.pem -out ~/Library/Application\ Support/barrier/SSL/Barrier.pem
-
Configure Server... > Screens and links 왼쪽 상단에 있는 screen 아이콘 drug and drop을 사용하여 Unnnamed screen을 만듭니다.이 버튼을 두 번 클릭하여 Screen name을 b.local로 변경합니다. -
애플리케이션 메뉴의 Barrier & Change Settings (F4)에서 Require client certificate를 ON으로 설정 -
Start 키를 누릅니다. -
클라이언트 및 서버의 FingerPrint 교체CLIENT=b.local rsync ~/Library/Application\ Support/barrier/SSL/Fingerprints/Local.txt $CLIENT:~/.local/share/barrier/SSL/Fingerprints/TrustedServers.txt rsync $CLIENT:~/.local/share/barrier/SSL/Fingerprints/Local.txt ~/Library/Application\ Support/barrier/SSL/Fingerprints/TrustedClients.txt
-
Reload 키를 누릅니다. 이렇게 하면 MacOS 모니터 가장자리로 커서를 이동하면 Linux 옆으로 커서가 이동하여 Linux를 조작할 수 있습니다.
macOS에서 설정
마운트 해제 시
macOS에서 barrier를 제거하려면:
rm -rf /Applications/Barrier.app
rm ~/Library/Preferences/com.github.Barrier.plist
rm -rf ~/Library/Application\ Support/barrier
Arch Linux에서 barrier를 제거합니다.pacman -R barrier
rm -rf ~/.local/share/barrier/
각주정확히 말하면 EV3895의 USB 허브 기능을 사용하여 물리적으로 모두 모니터에 직접 연결되며 여기에 논리적인 연결이라고 쓰여 있다.↩︎
Avahi를 사용하지 않고 IP를 직접 쳐도 괜찮습니다↩︎
systemd를 사용하지 않거나 오래된 Xserver를 사용하지 않았을 때/etc/X11/Xwrapper입니다.config 설정:
allowed_users = anybody
needs_root_rights = yes
다음과 같이 수행할 수 있습니다.단, 이것은 X 서버가 루트에서 이동하는 것이기 때문에 가능한 한 피합니다.startx
↩︎ 이것은 2.40입니다. 현재 자동으로 생성되어야 할 SSL 인증서가 생성되지 않았기 때문에workaround입니다.c.f. https://github.com/debauchee/barrier/issues/231#issuecomment-958800595 ↩︎
Reference
이 문제에 관하여(barrier를 사용하여 Linux·macOS 간에 키보드·마우스·키보드 공유), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/sunaemon/articles/81471b9431ff2c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)