Installing and running openSSH on Merlin - XIYO/asuswrt-merlin.ng-kr GitHub Wiki
Merlinμμ openSSH μ€μΉ λ° μ€ν
μ λ μ°κ²°μ μ€μ νλ λ° λ무 μ€λ μκ°μ΄ κ±Έλ¦¬κ³ 1λΆ λλ 2λΆλ§λ€ μ°κ²°μ΄ λκΈ°λ dropbearμ μ§μ³€μ΅λλ€. κ·Έλμ Merlinμμ openssh-serverλ₯Ό μ€ννκΈ°λ‘ κ²°μ νμ΅λλ€.
- RT-AC68Uμμ 386.5_2λ₯Ό μ€ν μ€μΈ κ²μΌλ‘ ν μ€νΈλμμ΅λλ€.
- μ κ° μ§ννλ©΄μ λ¬Έμννκ³ μμΌλ©° μ΄κ²μ μ²μλΆν° μ² μ νκ² ν μ€νΈλμ§ μμμΌλ©° μ λ¬Έμκ° λΆμμ νκ±°λ μλͺ»λ μ μμ§λ§ μ¬μ ν μμμ μΌλ‘ μ¬μ©λ κ²μ λλ€. λ€λ₯Έ μ¬λλ€μ΄ μλ μ¬λΆλ₯Ό νμΈνκ±°λ νμμ λ°λΌ μ λ°μ΄νΈν μ μκΈ°λ₯Ό λ°λλλ€.
- SSH μλ² λ° ν΄λΌμ΄μΈνΈλ₯Ό CLIλ₯Ό ν΅ν΄ μ€μ νκ³ κ΅¬μ±νλ κΈ°λ³Έ μ¬νμ μκ³ μ΄ν΄νκ³ μλ€κ³ κ°μ ν©λλ€.
- μ μ 쑰건 (μ: opkg, jffs, νμΌ νΈμ§ λ°©λ²)μ κ°κ³Όνκ±°λ μμ ν 무μν©λλ€.
- κ΅¬μ± λ° μ€μ μ΅μ (μ: RSA λ DSA λ ECDSA)μ 무μνκ±°λ 건λ λ°λ©° λ€λ₯Έ νκ²½ λλ μ¬μ§μ΄ λ΄ μ€μ μ λ λλ λ μ ν©ν μ μμ΅λλ€.
- λ¨μνλ₯Ό μν΄ μ΄ μμ λ€μ sshdκ° LANμμλ§ λ£λλ‘νκ³ 192.168.1.1μλ§ μλ κ²μΌλ‘ κ°μ ν©λλ€.
- λ λμ λ°©λ²μΌλ‘ μνν μ μλ κ²λ€μ΄ μμ κ²μ λλ€. μ λ μ¬κΈ°μ λ°°μ°λ €κ³ ν©λλ€.#### μμνκΈ°
openssh ν¨ν€μ§ μ€μΉ: opkg install openssh-keygen openssh-server
μλ² ν€ μμ±: ssh-keygen -f /opt/etc/ssh/ssh_host_rsa_key
λ§μ½ κ³΅κ° ν€κ° μλ€λ©΄, ~/.ssh/authorized_keys
μ κ³΅κ° ν€λ₯Ό λ£μΌμΈμ.
/opt/etc/ssh/sshd_config
νμΌμ νΈμ§νμΈμ. ν
μ€νΈλ₯Ό μν΄ λ€μκ³Ό κ°μ λΌμΈμ μΆκ°νμ΅λλ€:
ListenAddress 192.168.1.1
Port 2222
PermitRootLogin yes
Ciphers [email protected],[email protected],aes256-ctr,aes256-cbc
SSH ν΄λΌμ΄μΈνΈμμ ~/.ssh/config
νμΌμ νμμ λ§κ² νΈμ§νμΈμ. λ€μκ³Ό κ°μ΄ μΆκ°ν΄μΌ νμ΅λλ€:
HostKeyAlgorithms +rsa-sha2-512,rsa-sha2-256
μλ²λ₯Ό μμνλ €κ³ μλνλ©΄ μ€ν¨ν κ°λ₯μ±μ΄ λκ³ , λ‘κ·ΈμΈμ μλνλ©΄ "κ³μ λ§λ£"μ λν μ€λ₯κ° λ°μν κ²μ
λλ€. μ΄λ¬ν λ¬Έμ λ₯Ό "ν΄κ²°"νμ¬ /etc/shadow
λ° /etc/passwd
νμΌμ μμ νμΈμ.
/etc/shadow
νμΌμ νΈμ§νμ¬ "admin" λΌμΈμμ λ§μ§λ§ "0"μ μ κ±°νμΈμ:
μ΄μ :
admin:$1$xxxxxxxxxxxxxxxxxxxxxxxxxxxx:0:0:99999:7:0:0:
μ΄ν:
admin:$1$xxxxxxxxxxxxxxxxxxxxxxxxxxxx:0:0:99999:7:0::
λλ /etc/shadow
λ₯Ό νΈμ§νλ λμ λ€μ λͺ
λ Ήμ μ€ννμ¬ μμ νμΈμ(μμ κ°μ):
sed -i.bak.sshd '/^admin/ s!:0:$!::!' /etc/shadow
/etc/passwd
μ "sshd" μ¬μ©μλ₯Ό μΆκ°νμΈμ. μ΄λ₯Ό νΈμ§νκ±°λ λ€μ λͺ
λ Ήμ μ€ννμ¬ μΆκ°ν μ μμ΅λλ€:
echo 'sshd:x:22:65534:OpenSSH Server:/opt/var/empty:/dev/null' >> /etc/passwd
#### μλ²κ° μμλκ³ μλνλμ§ νμΈνλ ν
μ€νΈ:
/opt/sbin/sshd -D
λ₯Ό μ€ννμΈμ.
μ¬λ°λ₯Έ μλ²κ° μ¬λ°λ₯Έ ν¬νΈμμ μμ λκΈ° μ€μΈμ§ νμΈνκΈ° μν΄ telnetμ μ¬μ©νμΈμ: telnet 192.168.1.1 2222
λ₯Ό μ€ννλ©΄ λ€μκ³Ό μ μ¬ν λ΄μ©μ΄ νμλμ΄μΌ ν©λλ€: SSH-2.0-OpenSSH_9.0
λ°μ€ν¬ν±/λ
ΈνΈλΆ ν΄λΌμ΄μΈνΈμμ λΌμ°ν°λ‘ ssh μ°κ²°νμΈμ. ν¬νΈ λ²νΈλ₯Ό μ£Όμ κΉκ² νμΈνκ³ (μ νμ μΌλ‘) μμΈ λͺ¨λ(ssh -v
)λ₯Ό μ¬μ©νμ¬ μλ²μ λ²μ μ 보λ₯Ό λ λ² νμΈνμΈμ. λ€μκ³Ό κ°μ λ΄μ©μ μ°ΎμμΌ ν©λλ€: debug1: Remote protocol version 2.0, remote software version OpenSSH_9.0
νμν κ²½μ° /opt/sbin/sshd -d -o 'Port=2222'
λλ μ μ¬ν λͺ
λ Ήμ μ¬μ©νμ¬ ν
μ€νΈλ₯Ό μνν μ μμ΅λλ€. μ΅μ’
μ μΌλ‘ λͺ¨λ μ΅μ
μ /opt/etc/ssh/sshd_config
μμ μ€μ λμ΄μΌ ν©λλ€.
μ΄ μμ μμ μλνμ§ μλ κ²½μ° μ΄λ€ λ¬Έμ κ° μλμ§ λ° μ΄λ»κ² ν΄κ²°νλμ§ μλ €μ£ΌμΈμ.#### ν¬νΈ λ²νΈ ꡬμ±νκΈ°
μ΄ μμ μμ μλνλ€λ©΄... ν¬νΈ λ²νΈλ₯Ό κ·Έλλ‘ λκ±°λ λ€μμ μννμΈμ.
GUIλ₯Ό μ¬μ©νμ¬ (dropbear) sshλ₯Ό λ€λ₯Έ ν¬νΈλ‘ λ³κ²½νμΈμ. μ: 2222. μ΄ ν¬νΈλ λ³κ²½ κ°λ₯ν΄μΌ ν©λλ€. 2222 λλ μ¬κΈ°μ μ¬μ©νλ λ€λ₯Έ ν¬νΈ λ²νΈμμ μμ λκΈ° μ€μΈ sshd νλ‘μΈμ€λ₯Ό μ’ λ£νμΈμ.
κ·Έλ° λ€μ /opt/etc/ssh/sshd_config
νμΌμ μ΄κ³ ν¬νΈ 22μμ μμ λκΈ°νλλ‘ λ³κ²½νμΈμ.
μμ λκΈ° ν¬νΈλ₯Ό λ³κ²½νλ©΄ μ²μ μ°κ²°ν λ "κ²½κ³ : μ격 νΈμ€νΈ μλ³μ΄ λ³κ²½λμμ΅λλ€!" λ©μμ§κ° νμλ κ²μ΄λ―λ‘ ~/.ssh/known_hosts
(ν΄λΌμ΄μΈνΈ μΈ‘!) νμΌμ ν΄λΉ λ΄μ©μ λ§κ² νΈμ§νμΈμ.
λμμΌλ‘ ν΄λΌμ΄μΈνΈμμ ~/.ssh/config
νμΌμ νΈμ§νμ¬ "Host" μ μΈμ ν΅ν΄ ν¬νΈ 2222λ‘ μ°κ²°νκ±°λ, νμ ssh -p 2222
λ₯Ό μ¬μ©νμ¬ λκΈνκ³ λΉν¨μ¨μ μΌλ‘ μ¬μ©νμΈμ.
μ΄μ ν¬νΈ 22μμ sshd (openssh)λ₯Ό μ€ννκ³ , νμν κ²½μ°λ₯Ό λλΉνμ¬ ν¬νΈ 2222μμ dropbearλ₯Ό μ€ννκ³ μμ΅λλ€.
λ€μ λ¨κ³, λ€μ λΆν ν λ³κ²½μ¬ν μ μ§νκΈ°
"openssh-server" ν¨ν€μ§λ μμ μ€ν¬λ¦½νΈλ₯Ό μ€μΉνλ―λ‘ κ±±μ ν νμκ° μμ΅λλ€.
/jffs/scripts/shadow.postconf
λΌλ μ
Έ μ€ν¬λ¦½νΈλ₯Ό μμ±νκ±°λ μΆκ°νκ³ μ€ν κ°λ₯νκ² λ§λλλ€:
#!/bin/sh
## "admin" κ³μ μ΄ λ§λ£λμ§ μλλ‘ μ€μ
sed -i.bak.sshd '/^admin:/ s!:0:$!::!' /etc/shadow
/jffs/configs/passwd.add
λ₯Ό μμ±νκ±°λ μΆκ°νμΈμ:
sshd:x:22:65534:OpenSSH Server:/opt/var/empty:/dev/null
μ¬λΆν ν λͺ¨λ κ²μ ν μ€νΈνκ³ λ λ² νμΈνμΈμ.#### μμ΅
"μ¬μ©μ μ§μ κ΅¬μ± νμΌ"μ λν μμΈν μ 보λ μ¬κΈ°μμ νμΈν μ μμ΅λλ€ - https://github.com/RMerl/asuswrt-merlin.ng/wiki/Custom-config-files
λͺ¨λ κ²μ΄ μννκ² μλνλ€λ©΄, λΌμ°ν°λ₯Ό λ€μ λΆν ν μ μμΌλ©° opensshλ μνλ ν¬νΈμμ μμ λκΈ°νκ³ , νμν κ²½μ°λ₯Ό λλΉνμ¬ dropbearλ λ€λ₯Έ ν¬νΈμμ μμ λκΈ°ν κ²μ λλ€.
μ λ dropbearλ³΄λ€ opensshκ° ν¨μ¬ λ μ λ’°μ± μκ³ μμ μ μ΄λΌλ κ²μ λ°κ²¬νκ³ μμ΅λλ€.