๐ ๏ธ Termux์์ tmux๋ก ์ ์ดํ๋ ์์ SSH ์๋ฒ ์ด๊ธฐ
1๏ธโฃ ๐งญ ๋ด๊ฐ ์ด ์์ ์ ์์ํ ์ด์
๋๋ pi-server์ ์ฐ๋๊ณผ ์ ๊ทผ์ฑ ๊ทธ๋ฆฌ๊ณ ๋ณด์์ ์ํด ๋ด ํฐ์ด ์ผ์ข ์ ์ค๊ฐ๊ฐ์ ํ๋ธ์ฒ๋ผ ์๋ํ๊ธธ ๋ฐ๋ฌ๋ค. ๊ฐ์ฅ ๊ฐ๊น์ด ์์ผ๋ฉด์ ๊ฐ์ฅ ๋ด ๊ธฐ๊ธฐ๋ค๊ณผ์ ์ํต์ด ๋ง์ ๊ธฐ๊ธฐ๊ฐ ์ค๋งํธํฐ ์๋ผ ์๊ฐํด ์ด๋ฐ ์๊ฐ์ด ๋ค์๋ค. ๊ทธ๋์ Termux๋ฅผ ์ฌ์ฉํ๋ฉด์, ํ์ํ ๋๋ง ์ ๊น ์ธ ์ ์๋ SSH ์๋ฒ๊ฐ ํ์ํ๋ค. ํญ์ ์ผ์ ธ ์๋ ์๋ฒ๊ฐ ์๋๋ผ, ๊ฐ์ Wi-Fi(LAN) ํ๊ฒฝ์์๋ง ์ ์ํ๊ณ ์ฌ์ฉ์ด ๋๋๋ฉด ๋ฐ๋ก ๋ ์ ์๋ ๊ตฌ์กฐ๋ฅผ ์ํ๋ค.
2๏ธโฃ ๐ ๏ธ ์์ ํ๊ฑฐ ์ ๋ฆฌํ ํํ ๋ฆฌ์ผ
โ 1. Termux์ SSH ์๋ฒ์ tmux๋ฅผ ์ค์นํ๋ค
pkg update pkg install openssh tmux
openssh โ SSH ์๋ฒ(sshd)
tmux โ sshd๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ด๋ฆฌ ์ฝ์
์ด ์์ ๋ถํฐ ์ ์ ๋ ํ๋๋ค.
tmux โ sshd sshd โ tmux
์๋ก ์๋ช ์ฃผ๊ธฐ ๊ณต์ ์ ํ๋ค. ์ด๊ฑธ ์์ด์ ์๊ฐํ๋ ์๊ฐ๋ถํฐ ํท๊ฐ๋ฆผ์ด ์์๋๋ค.
๐ 2. SSH ๋น๋ฐ๋ฒํธ ์ธ์ฆ์ ์ฌ์ฉํ ์ ์๊ฒ ์ค์ ํ๋ค
Termux์ SSH ์๋ฒ๋ ๊ธฐ๋ณธ ์ฌ์ฉ์(termux) ๊ธฐ์ค์ผ๋ก ๋์ํ๋ค. ๋น๋ฐ๋ฒํธ๋ฅผ ํ ๋ฒ๋ ์ค์ ํ์ง ์์ผ๋ฉด ๋ก๊ทธ์ธ ์์ฒด๊ฐ ๋ถ๊ฐ๋ฅํ๋ค.
passwd
์ด ๋จ๊ณ๋ ์ด๊ธฐ 1ํ ํ์๋ค.
โ๏ธ 3. sshd์ ์์กด ์ฃผ๊ธฐ(Lifecycle)๋ฅผ ์ ํํ ์ดํดํ๊ธฐ
์ด ๊ตฌ์ฑ์ด ํท๊ฐ๋ฆฌ๋ ์ด์ ์ 90%๋ sshd์ ์์กด ์ฃผ๊ธฐ๋ฅผ ํฐ๋ฏธ๋ ํ๋ก๊ทธ๋จ์ฒ๋ผ ์ฐฉ๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ฌ๊ธฐ์ ๊ทธ ์ฐฉ๊ฐ์ ์์ ํ ๋์ด๋ด์ผ ํ๋ค.
๐ฅ sshd๋ โ๋ช ๋ น์ดโ๊ฐ ์๋๋ผ โ๋ฐ๋ชฌโ์ด๋ค
sshd
์ด๊ฑธ ์คํํ๋ ์๊ฐ:
sshd๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ฐ๋ชฌ ํ๋ก์ธ์ค๋ก ์ ํ๋๋ค
์คํํ ํฐ๋ฏธ๋๊ณผ์ ์ฐ๊ฒฐ์ด ๋๊ธด๋ค
๋ถ๋ชจ ์์ด ์ฌ๋ผ์ ธ๋ ์ด์๋จ๋๋ค
์ฆ,
์ํฉ sshd ์ํ
ํฐ๋ฏธ๋ ์ข ๋ฃ โ ์ ๊บผ์ง tmux ์ธ์ ์ข ๋ฃ โ ์ ๊บผ์ง ์ฑ ํ๋ฉด ๋ซ๊ธฐ โ ์ ๊บผ์ง ํฐ ํ๋ฉด ๊บผ์ง โ ์ ๊บผ์ง
๋ช ์์ ์ผ๋ก ์ฃฝ์ด์ง ์๋ ํ ๊ณ์ ์ด์ ์๋ค.
๐ง โ๋ ๋ถ๋ช tmux ๋ซ์๋๋ฐ SSH ์ ์์ด ๋๋ค?โ์ ์ ์ฒด
์ด ์ํฉ์ ๋ฒ๊ทธ๋ ์๋๊ณ , Termux ๋ฌธ์ ๋ ์๋๋ค. ์ ์ ๋์์ด๋ค.
tmux new -s test sshd exit
์ด๋ ๊ฒ ํด๋ sshd๋:
pgrep -a sshd
โ ๋ฉ์ฉกํ ์ด์ ์๋ค.
๐ ์ด์ ๋ ๊ฐ๋จํ๋ค. sshd๋ tmux์ ์์ ํ๋ก์ธ์ค๊ฐ ์๋๊ธฐ ๋๋ฌธ์ด๋ค.
๐ sshd์ ์ํ ํ์ธ์ โํ๋ก์ธ์ค ๊ธฐ์คโ์ผ๋ก๋ง ํ๋ค
ํฐ๋ฏธ๋ ์ํ โ tmux ์ธ์ ์ํ โ Shortcut ์คํ ์ฌ๋ถ โ
์ค์ง ํ๋ก์ธ์ค๋ง ๋ณธ๋ค.
pgrep -a sshd
๊ฒฐ๊ณผ ์์ โ ์๋ฒ ์ด์ ์์
๊ฒฐ๊ณผ ์์ โ ์๋ฒ ๊บผ์ง
์ด ๊ธฐ์ค ํ๋๋ง ๋ฏฟ์ผ๋ฉด ๋๋ค.
โ ๏ธ sshd ์ข ๋ฃ๋ ๋ฐ๋์ ์ง์ ํ๋ค
pkill sshd
๋๋ PID ์ก์์:
kill
์ด๊ฑธ ์ ํ๋ฉด:
LAN ์์์ ๊ณ์ ์ด๋ ค ์์
ํฌํธ ๊ณ์ ๋ฆฌ์จ ์ค
โ์์ ์๋ฒโ๋ผ๋ ์ ์ ๊ฐ ๋ฌด๋์ง
๊ทธ๋์ ์ด ๊ธ ์ ์ฒด ๊ตฌ์กฐ๊ฐ โ์๋ ์ข ๋ฃโ๊ฐ ์๋๋ผ โ๋ช ์์ ์ข ๋ฃโ๋ก ์ค๊ณ๋ ์ด์ ๋ค.
๐งฉ 4. tmux์ ์ญํ ์ ๋ค์ ์ ํํ ์ ์ํ๋ค
tmux๋ ๋ฑ ํ๋๋ค.
sshd๋ฅผ ์ผ๊ณ / ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํ ๊ด๋ฆฌ์ฉ ํฐ๋ฏธ๋
๊ทธ ์ด์๋ ์ดํ๋ ์๋๋ค.
tmux์์ ํ ์ ์๋ ๊ฒ
tmux new -s ssh-admin sshd ip addr show
sshd ์คํ
IP ํ์ธ
๋ก๊ทธ ํ์ธ
tmux์์ ๊ธฐ๋ํ๋ฉด ์ ๋๋ ๊ฒ
sshd ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ โ
์๋ ์ข ๋ฃ โ
์ํ ํ๋จ โ
Ctrl + b โ d
์ด๊ฑด tmux์์ ๋๊ฐ๋ ๊ฒ์ด์ง sshd๋ฅผ ๋๋ ํ์๊ฐ ์๋๋ค.
๐ซ 5. ์ ์๋ ์ข ๋ฃ ๊ตฌ์กฐ๋ฅผ ๋ฒ๋ ธ๋๊ฐ
tmux hook ๊ฐ์ ๊ฑธ ์ฐ๋ฉด ์ด๋ฐ ์๊ฐ์ด ๋ ๋ค.
โ์ธ์ ๋ซํ๋ฉด ์์์ sshd๋ ๊บผ์ง๊ฒ ํ๋ฉด ๋์ง ์๋?โ
์ด๋ก ์์ ๊ฐ๋ฅํ๋ค. ํ์ค์ ๋ค๋ฅด๋ค.
tmux hook์ด ์ํํ ์ด์
pane ์ข ๋ฃ โ session ์ข ๋ฃ
detached ์ํ์์๋ ํ ์ ํ๋ ๊ฒฝ์ฐ ์์
SSH ์ ์ ์ค์ธ ์ธ์ ์ด ์์ด๋ ํ ์ด ๋จผ์ ์คํ๋ ์ ์์
์ธ์ ๊บผ์ง์ง ์ฌ๋์ด ์์ธกํ๊ธฐ ์ด๋ ค์
๊ฒฐ๊ตญ ์ด๋ฐ ์ํฉ์ด ๋์จ๋ค.
โ์ ์ ๊บผ์ก์ง?โ
โ์ ๊ฐ์๊ธฐ ๋๊ฒผ์ง?โ
โ์ง๊ธ ์ด๋ ค ์๋ ๊ฑฐ์ผ, ์๋ ๊ฑฐ์ผ?โ
๐ ์์ ์๋ฒ์์ ์ด๊ฑด ์น๋ช ์ ์ด๋ค.
๐ฑ 6. Termux Shortcut ๊ธฐ๋ฐ์ผ๋ก ์ด๊ธฐ / ๋ซ๊ธฐ ์คํฌ๋ฆฝํธ ๋ถ๋ฆฌ
๊ทธ๋์ ์ต์ข ์ ์ผ๋ก ์ ํํ ๊ตฌ์กฐ๋ ์ด๊ฑฐ๋ค.
์ฌ๋์ด ์ง์ ์ฐ๋ค ์ฌ๋์ด ์ง์ ๋ซ๋๋ค ์๋ ํ๋จ ์์
๐ ์คํฌ๋ฆฝํธ ์์น
~/.shortcuts/
โถ๏ธ SSH ์๋ฒ ์ด๊ธฐ (ssh-open)
#!/data/data/com.termux/files/usr/bin/sh
SESSION=โsshdโ
create session if not exists
tmux has-session -t โ$SESSIONโ 2>/dev/null if [ $? -ne 0 ]; then tmux new-session -d -s โ$SESSIONโ fi
run sshd inside that tmux session (no output is normal)
tmux send-keys -t โ$SESSIONโ โsshdโ C-m tmux send-keys -t โ$SESSIONโ โecho โIP:โ; ifconfig | awk โ/inet / && $2 != "127.0.0.1" {print " ", $2}โโ C-m
(optional) auto-attach when you run the shortcut
tmux attach -t โ$SESSIONโ
โน๏ธ SSH ์๋ฒ ๋ซ๊ธฐ (ssh-close)
#!/data/data/com.termux/files/usr/bin/sh
SESSION=โsshdโ
echo โ๐ SSHD ์ข ๋ฃ ์ํ์ค ์์โ
1) tmux ์ธ์ ์ข ๋ฃ (์์ผ๋ฉด)
if tmux has-session -t โ$SESSIONโ 2>/dev/null; then echo โ๐งจ tmux ์ธ์ โ$SESSIONโ ์ข ๋ฃโ tmux kill-session -t โ$SESSIONโ else echo โโน๏ธ tmux ์ธ์ โ$SESSIONโ ์์โ fi
2) sshd ์ข ๋ฃ (๋จ์์์ผ๋ฉด)
if pgrep -f sshd >/dev/null; then echo โ๐ sshd ํ๋ก์ธ์ค ์ข ๋ฃโ pkill sshd else echo โโน๏ธ sshd ์ด๋ฏธ ๊บผ์งโ fi
echo โโ ์ข ๋ฃ ์๋ฃโ
๐ 7. ์ค์ ์ฌ์ฉ ํ๋ฆ (์์กด ์ฃผ๊ธฐ ๊ธฐ์ค)
๐ฑ ssh-open ์คํ
sshd ์์ฑ๋จ (๋ฐ๋ชฌ)
IP ํ์ธ
๐ป PC์์ ์ ์
ssh termux@192.168.x.x
์์ ์ข ๋ฃ
๐ฑ ssh-close ์คํ
pgrep sshd โ ๊ฒฐ๊ณผ ์์ = ์์ ์ข ๋ฃ
๐ 3๏ธโฃ ์์ ํ๊ธฐ
์ด๋ฒ ์์ ์ผ๋ก Termux์ shortcut์ ํตํด ๋ฒํผ ๋ธ๊น์ผ๋ก sshd๋ฅผ ์ด์ด ๊ฐ์ ๋คํธ์ํฌ ์์ ๊ธฐ๊ธฐ๋ค์ด ์ ์ํ ์ ์๊ฒ ๋์๋ค. ์์งํ ์ธ์ ๊ฐ๋ ์ด๊ฒ๋ cloudflared๊ธฐ๋ฐ์ผ๋ก ์ด๊ณ ๋ซ๋๊ฒ๋ ๋ง๋ค๊ฒ ๊ฐ๋ค.(๊ตฐ๋๋ผ ๊ฐ์ ๋คํธ์ํฌ๊ฐ ์ฝ์ง์๋ ;;)