πŸ“‘ WSLμ—μ„œ SSH μ„œλ²„ μ—΄κΈ°

ν•™κ΅μ—μ„œ μ•„μ΄νŒ¨λ“œλ‘œ μ½”λ”©ν•˜κΈ°

(history)
Table of Contents

SSH(Secure Shell)λŠ” μ•ˆμ „ν•˜κ²Œ 원격 접속을 ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” ν”„λ‘œν† μ½œμ΄λ‹€. μœˆλ„μš° λ°μŠ€ν¬νƒ‘μ—μ„œ SSH μ„œλ²„λ₯Ό μ—΄λ©΄ μ•„μ΄νŒ¨λ“œμ—μ„œ μ›κ²©μœΌλ‘œ λ°μŠ€ν¬νƒ‘ μ‰˜μ— 접속을 ν•  수 μžˆλ‹€. WSL(Windows Subsystem for Linux)은 μœˆλ„μš°μ˜ μ„œλΈŒμ‹œμŠ€ν…œμ— λ¦¬λˆ…μŠ€λ₯Ό νƒ‘μž¬ν•˜λŠ” κΈ°μˆ μ΄λ‹€. 아직 λΆ€λ“œλŸ½κ²Œ μž‘λ™ν•˜μ§€ μ•ŠλŠ” 뢀뢄듀이 쑰금 μžˆμ§€λ§Œ, λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈμ—μ„œ WSL에 신경을 많이 μ“°κ³  있기 λ•Œλ¬Έμ— μΆ©λΆ„νžˆ μ“Έλ§Œν•˜λ‹€.

λ‚΄ λͺ©μ μ€ ν•™κ΅μ—μ„œ μ•„μ΄νŒ¨λ“œλ‘œ 집에 μžˆλŠ” μœˆλ„μš° 10 λ°μŠ€ν¬νƒ‘μ— 원격 접속해 코딩을 ν•˜λŠ” κ²ƒμ΄μ—ˆλ‹€. μš°μ„  λ°μŠ€ν¬νƒ‘μ— WSL μš°λΆ„νˆ¬ 16.04λ₯Ό μ„€μΉ˜ν–ˆκ³ , μ•„μ΄νŒ¨λ“œμ—λŠ” 터미널 μ•± Termiusλ₯Ό μ„€μΉ˜ν–ˆλ‹€.

openssh-server μž¬μ„€μΉ˜

SSH μ„œλ²„λ₯Ό μ—΄κΈ°μœ„ν•΄μ„œλŠ” openssh-serverλΌλŠ” νŒ¨ν‚€μ§€κ°€ ν•„μš”ν•˜λ‹€. WSL μš°λΆ„νˆ¬ 16.04 κΈ°μ€€μœΌλ‘œ SSH μ„œλ²„λ₯Ό μ‹€ν–‰ν•˜λŠ” λͺ…λ Ή service ssh startλ₯Ό 싀행해보면 λͺ‡κ°€μ§€ μ—λŸ¬κ°€ λ‚˜νƒ€λ‚œλ‹€. κΈ°λ³Έ μ„€μΉ˜λ˜μ–΄μžˆλŠ” openssh-server의 λ¬Έμ œμ΄λ―€λ‘œ, μž¬μ„€μΉ˜ν•΄μ€€λ‹€.

$ sudo apt remove openssh-server
$ sudo apt install openssh-server

sshd_config 파일 μˆ˜μ •

sshd_configλŠ” SSH μ„€μ • νŒŒμΌμ΄λ‹€. SSH μ„œλ²„λ₯Ό μ—΄κΈ° 전에 이 νŒŒμΌμ„ μ•½κ°„ μˆ˜μ •ν•΄μ€˜μ•Ό ν•œλ‹€. root κΆŒν•œμ΄ ν•„μš”ν•˜λ―€λ‘œ, μžμ‹ μ˜ 계정에 root κΆŒν•œμ΄ μ—†λ‹€λ©΄ root κ³„μ •μœΌλ‘œ μ „ν™˜ν•˜κ³  /etc/ssh/sshd_config νŒŒμΌμ„ μ—°λ‹€.

$ sudo su - root
$ vi /etc/ssh/sshd_config

μ—¬κΈ°μ„œ λ°”κΏ”μ•Ό ν•  뢀뢄은 두 곳이닀. (μš°λΆ€νˆ¬ 18.04 버전이라면 Port κ°’λ§Œ μˆ˜μ •ν•΄λ„ λœλ‹€.)

  • Port의 값을 λ³€κ²½ν•œλ‹€. SSH κΈ°λ³Έ ν¬νŠΈλŠ” 22인데, μ΄λŠ” μœˆλ„μš°μ—μ„œ 이미 μ‚¬μš© 쀑인 포트이기 λ•Œλ¬Έμ— WSLμ—μ„œλŠ” λ‹€λ₯Έ κ°’μœΌλ‘œ λ°”κΏ”μ€˜μ•Ό ν•œλ‹€. μ λ‹Ήνžˆ 2222둜 ν–ˆλ‹€.
  • PasswordAuthentication의 값을 yes둜 λ°”κΏ”μ€€λ‹€. νŒ¨μŠ€μ›Œλ“œ 인증을 μ‚¬μš©ν•˜λ„λ‘ μ„€μ •ν•˜λŠ” 것이닀.

μ €μž₯ ν›„ SSH μ„œλ²„λ₯Ό μž¬μ‹œμž‘ν•΄μ€€λ‹€.

$ sudo service ssh --full-restart

ν¬νŠΈν¬μ›Œλ”©

μ„œλ²„ 컴퓨터가 κ³΅μœ κΈ°μ— μ—°κ²°λ˜μ–΄ μžˆλŠ” μƒν™©μ΄λ―€λ‘œ μ™ΈλΆ€μ—μ„œ μ ‘μ†ν•˜λ €λ©΄ ν¬νŠΈν¬μ›Œλ”©μ„ ν•΄μ€˜μ•Όν•œλ‹€. 곡인 μ•„μ΄ν”ΌλŠ” κ³΅μœ κΈ°μ— ν• λ‹Ήλ˜λŠ”λ°, κ³΅μœ κΈ°μ— μ—°κ²°λœ μ»΄ν“¨ν„°λ‚˜ νœ΄λŒ€ν° λ“±μ˜ λ””λ°”μ΄μŠ€μ—λŠ” 192.168.0.x ν˜•νƒœμ˜ 사섀 아이피가 ν• λ‹Ήλœλ‹€. λ”°λΌμ„œ μ™ΈλΆ€λ§μ—μ„œ 곡인 아이피λ₯Ό μž…λ ₯해도 이 μ„œλ²„ μ»΄ν“¨ν„°λ‘œλŠ” 접속을 ν•  μˆ˜κ°€ μ—†λ‹€.

ipTIME을 μ‚¬μš© 쀑이라면 μ•„λž˜ 과정을 λ”°λ₯΄λ©΄ λœλ‹€. (μ œμ‘°μ‚¬λ§ˆλ‹€ μ„€μ • μΈν„°νŽ˜μ΄μŠ€κ°€ μ‘°κΈˆμ”© λ‹€λ₯΄λ‹€.)

  1. λΈŒλΌμš°μ €μ— 곡유기의 곡인 아이피 λ˜λŠ” 192.168.0.1을 μž…λ ₯ν•œλ‹€.
  2. 둜그인 ν›„ 'κ³ κΈ‰ μ„€μ • > NAT/λΌμš°ν„° 관리 > ν¬νŠΈν¬μ›Œλ“œ 섀정’에 λ“€μ–΄κ°„λ‹€.
  3. λ‚΄λΆ€ 아이피 μ£Όμ†ŒλŠ” 'ν˜„μž¬ μ ‘μ†λœ PC의 IP μ£Όμ†Œλ‘œ μ„€μ •β€™μœΌλ‘œ μ„€μ •ν•œλ‹€.
  4. ν”„λ‘œν† μ½œμ„ TCP둜 μ„€μ •ν•œλ‹€.
  5. μ™ΈλΆ€ ν¬νŠΈλŠ” sshd_config νŒŒμΌμ—μ„œ μ„€μ •ν•œ Port κ°’μœΌλ‘œ μ„€μ •ν•œλ‹€. (2222 ~ 2222)
  6. λ‚΄λΆ€ ν¬νŠΈλ„ λ˜‘κ°™μ΄ μ„€μ •ν•œλ‹€. (2222 ~ 2222)
  7. κ·œμΉ™ 이름은 λ§ˆμŒλŒ€λ‘œ μ •ν•œλ‹€.
  8. 쒌츑 μƒλ‹¨μ˜ 'μ €μž₯’을 ν΄λ¦­ν•œλ‹€.

곡유기 ν¬νŠΈν¬μ›Œλ”©μ€ 검색해도 많이 λ‚˜μ˜€κ³ , μƒν™œμ½”λ”© κ°•μ˜λ„ 잘 λ˜μ–΄μžˆλ‹€.

λ°©ν™”λ²½ μ„€μ •

SSH ν¬νŠΈκ°€ λ°©ν™”λ²½μœΌλ‘œ λ§‰ν˜€μžˆμ„ 경우 접속이 λΆˆκ°€λŠ₯ν•˜λ‹€.

  1. 'μ œμ–΄νŒ > μ‹œμŠ€ν…œ 및 λ³΄μ•ˆ > Windows Defender 방화벽’에 λ“€μ–΄κ°€ 'κ³ κΈ‰ 섀정’을 ν΄λ¦­ν•œλ‹€.
  2. μΈλ°”μš΄λ“œ κ·œμΉ™μ„ ν΄λ¦­ν•˜κ³  'μƒˆ κ·œμΉ™β€™μ„ ν΄λ¦­ν•œλ‹€.
  3. κ·œμΉ™ μ’…λ₯˜λŠ” 'ν¬νŠΈβ€™λ₯Ό μ„ νƒν•œλ‹€.
  4. ν”„λ‘œν† μ½œμ€ TCP, 'νŠΉμ • 원격 ν¬νŠΈβ€™λŠ” μ•žμ„œ μ„€μ •ν•œ Port κ°’μœΌλ‘œ μ„€μ •ν•œλ‹€. (2222) 이름은 λ§ˆμŒλŒ€λ‘œ μ •ν•œλ‹€.
  5. μ•„μ›ƒλ°”μš΄λ“œ κ·œμΉ™λ„ λ§ˆμ°¬κ°€μ§€λ‘œ ν•΄μ€€λ‹€.

SSH μ„œλ²„ 접속

WSL bashλ₯Ό μ’…λ£Œν•˜λ©΄ SSH μ„œλ²„λ„ λ‹«ν˜€λ²„λ¦°λ‹€. λ‹€μ‹œ μ—΄κ³  싢을 λ•ŒλŠ” μ•„λž˜ λͺ…령을 μ‹€ν–‰ν•˜λ©΄ λœλ‹€.

$ sudo service ssh start

Puttyλ‚˜ Termius 같은 ν”„λ‘œκ·Έλž¨μ„ μ΄μš©ν•΄ 접속 ν…ŒμŠ€νŠΈλ₯Ό ν•΄λ³΄μž. μ„œλ²„μ™€ 같은 μ»΄ν“¨ν„°μ—μ„œ μ ‘μ†ν•˜λŠ” 경우 hostname은 μ„œλ²„μ˜ 곡인 μ•„μ΄ν”Όλ‘œ, portλŠ” μ•žμ„œ μ„€μ •ν•œ 2222둜 두면 λœλ‹€.

μ΄μ–΄μ„œ μ™ΈλΆ€λ§μ˜ λ„·λΆμ—μ„œ ν…ŒμŠ€νŠΈν–ˆκ³ , 이후 μ•„μ΄νŒ¨λ“œμ—μ„œλ„ ν…ŒμŠ€νŠΈν–ˆλŠ”λ° 잘 됐닀! 이제 학ꡐ에 λ…ΈνŠΈλΆλ“€κ³  가지 μ•Šκ³  ν”„λ‘œκ·Έλž˜λ°μ„ ν•  수 있게 λ˜μ—ˆλ‹€.

<

🌐 Top-Down으둜 μ ‘κ·Όν•˜λŠ” λ„€νŠΈμ›Œν¬

Computer Networks and the Internet

>

μœˆλ„μš°μ¦ˆμ—μ„œ React Native 개발 ν™˜κ²½ μ„ΈνŒ…ν•˜κΈ°

개발 ν™˜κ²½ μ„ΈνŒ…λ§Œ μ‚¬ν˜

πŸ“š