πŸ“ SSH 간단 정리

망고·2022λ…„ 12μ›” 4일
0
post-thumbnail
post-custom-banner

πŸ•Ή SSHλž€?

  • Secure Shell Protocol 의 μ•½μžλ‘œ 원격지 호슀트 컴퓨터에 μ ‘μ†ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” λ„€νŠΈμ›Œν¬ ν”„λ‘œν† μ½œ
  • TCP 상에 λ³΄μ•ˆ 채널(터널링)을 ν˜•μ„±ν•˜μ—¬ 기타 μ‘μš© ν”„λ‘œν† μ½œλ“€μ΄ μ•ˆμ „ν•˜κ²Œ 데이터λ₯Ό κ΅ν™˜
  • 적은 λΉ„μš©μœΌλ‘œ, 비ꡐ적 μ‰½κ²Œ κ΅¬ν˜„ κ°€λŠ₯ν•˜κ³ , μ•ˆμ „ν•˜μ—¬ 널리 μ‚¬μš©λ¨
  • μ„œλ²„ 접속 μ‹œ λΉ„λ°€λ²ˆν˜Έ λŒ€μ‹  λΉ„λŒ€μΉ­ν‚€λ₯Ό μ œμΆœν•˜λŠ” 방식
  • 기본적(Default)으둜 TCP 22번 포트λ₯Ό μ‚¬μš©ν•˜μ—¬ 톡신

πŸ”‘ λΉ„λŒ€μΉ­ν‚€

ꡬ성

SSH μΈμ¦μ ˆμ°¨μ—” λΉ„λŒ€μΉ­ν‚€ μ•Œκ³ λ¦¬μ¦˜μ΄ μ‚¬μš©λ˜λ©° 두 μ’…λ₯˜μ˜ ν‚€λ‘œ ꡬ성

μ’…λ₯˜κΈ°λŠ₯μœ„μΉ˜
public keyλ©”μ‹œμ§€ μ•”ν˜Έν™”μ›κ²© λ¨Έμ‹  (SSH Server)
private keyλ©”μ‹œμ§€ λ³΅ν˜Έν™”λ‘œμ»¬ λ¨Έμ‹  (SSH Client)

λ™μž‘ 방식

  • public key둜 μ•”ν˜Έν™”ν•œ λ‚΄μš©μ€ private key둜 λ³΅ν˜Έν™”κ°€ κ°€λŠ₯
  • private key둜 μ•”ν˜Έν™”ν•œ λ‚΄μš©μ€ public key둜 λ³΅ν˜Έν™”κ°€ κ°€λŠ₯
  • public keyλŠ” μžμ‹ λ§Œ 가지고 μžˆλŠ” 단일 μ†Œμœ κΆŒμ΄κ³  public keyλŠ” μ—¬λŸ¬ μ‚¬μš©μžκ°€ μ†Œμœ ν•  수 μžˆλŠ” λΆ„μ‚° μ†Œμœ κΆŒ
  • 곡유된 public key둜 μ•”ν˜Έν™”ν•˜μ—¬ 단일 private key둜 λ³΅ν˜Έν™”
  • 만일 private key둜 μ•”ν˜Έν™”ν•  경우, μ—¬λŸ¬ μ‚¬μš©μžλ‘œλΆ€ν„° λ³΅ν˜Έν™”κ°€ κ°€λŠ₯ν•˜κΈ°μ— ꢌμž₯λ˜μ§€ μ•ŠμŒ

βš™οΈ λ™μž‘ κ³Όμ •

Step 1. 원격 접속 μš”μ²­ ( ν΄λΌμ΄μ–ΈνŠΈ -> μ„œλ²„ )

  1. ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ— 원격 μ ‘μ†ν•˜κΈ° μœ„ν•΄ μ„œλ²„μ˜ TCP 22번 포트둜 SSH 접속 μš”μ²­
  2. μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ„œλ²„κ°€ μ§€μ›ν•˜λŠ” ν”„λ‘œν† μ½œμ˜ 버전을 응닡
  3. ν΄λΌμ΄μ–ΈνŠΈλŠ” μ„œλ²„λ‘œλΆ€ν„° 응닡받은 버전 쀑 μΌμΉ˜ν•˜λŠ” 것이 μžˆλ‹€λ©΄ 연결을 지속

Step 2. Public key 전솑 ( μ„œλ²„ -> ν΄λΌμ΄μ–ΈνŠΈ )

  1. μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„° SSH 접속 μš”μ²­μ„ μˆ˜μ‹ 
  2. μ„œλ²„μ˜ public keyλ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ 전솑
  3. ν΄λΌμ΄μ–ΈνŠΈλŠ” μ„œλ²„λ‘œλΆ€ν„° 받은 public keyλ₯Ό μ €μž₯

Step 3. λ³΄μ•ˆ 채널 확립 ( ν΄λΌμ΄μ–ΈνŠΈ <-> μ„œλ²„ )

  1. μ„œλ²„ 인증 ( ν΄λΌμ΄μ–ΈνŠΈ -> μ„œλ²„ )
  2. μ•”ν˜Έν™” 톡신을 μœ„ν•œ μ„Έμ…˜ν‚€(λŒ€μΉ­ν‚€) 생성
  3. ν΄λΌμ΄μ–ΈνŠΈ 인증 ( μ„œλ²„ -> ν΄λΌμ΄μ–ΈνŠΈ )

Step 4. 접속 성곡

μ„Έμ…˜ ν‚€λ₯Ό 톡해 ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„ λ„€νŠΈμ›Œν¬ 톡신 진행


πŸ’» μ„œλ²„ 인증

λΉ„λŒ€μΉ­ν‚€(public/private)λ₯Ό μ‚¬μš©ν•΄ 인증 진행

  1. ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ λ‚œμˆ˜ 생성, λ‚œμˆ˜ ν•΄μ‹œκ°’ 생성 및 μ €μž₯
  2. λ‚œμˆ˜λ₯Ό μ„œλ²„μ˜ public key둜 μ•”ν˜Έν™” ν›„ μ„œλ²„μ— 전솑
  3. μ„œλ²„μ—μ„œ μ„œλ²„μ˜ private key둜 데이터λ₯Ό λ³΅ν˜Έν™”ν•˜μ—¬ λ‚œμˆ˜ μΆ”μΆœ
  4. μ„œλ²„μ—μ„œ λ³΅ν˜Έν™”λœ λ‚œμˆ˜ ν•΄μ‹œκ°’μ„ 생성 ν›„ ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ 전솑
  5. ν΄λΌμ΄μ–ΈνŠΈμ— μ €μž₯된 λ‚œμˆ˜ ν•΄μ‹œκ°’κ³Ό μ„œλ²„μ—μ„œ 받은 λ‚œμˆ˜ ν•΄μ‹œκ°’μ„ 비ꡐ
  6. μΌμΉ˜ν•  μ‹œ μ„œλ²„ 인증

πŸ§‘πŸ»β€πŸ’» ν΄λΌμ΄μ–ΈνŠΈ 인증

λΉ„λŒ€μΉ­ν‚€(public/private)λ₯Ό μ‚¬μš©ν•΄ 인증 진행

  1. ν΄λΌμ΄μ–ΈνŠΈλŠ” 인증할 ν‚€ 쌍의 idλ₯Ό μ„œλ²„μ— 전솑
  2. μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈκ°€ μ ‘μ†ν•˜κ³ μž ν•˜λŠ” κ³„μ •μ˜ public keyλ₯Ό 확인
  3. μ„œλ²„μ— id와 λ§€μΉ­λ˜λŠ” public keyκ°€ μ‘΄μž¬ν•˜λ©΄, λ‚œμˆ˜λ₯Ό μƒμ„±ν•˜κ³  ν•΄λ‹Ή public key둜 μ•”ν˜Έν™”
  4. μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ•”ν˜Έν™”λœ λ©”μ‹œμ§€ 전솑
  5. ν΄λΌμ΄μ–ΈνŠΈμ˜ public keyλ₯Ό 톡해 μ•”ν˜Έν™”λœ λ©”μ‹œμ§€λ₯Ό λ³΅ν˜Έν™”ν•˜μ—¬ λ‚œμˆ˜ μΆ”μΆœ
  6. ν΄λΌμ΄μ–ΈνŠΈλŠ” λ‚œμˆ˜λ₯Ό μ„Έμ…˜ν‚€μ™€ κ²°ν•©ν•˜μ—¬ ν•΄μ‹œκ°’ 계산 ν›„ μ„œλ²„ 전솑
  7. μ„œλ²„λŠ” μ €μž₯된 λ‚œμˆ˜μ™€ μ„Έμ…˜ν‚€λ₯Ό κ²°ν•©ν•˜μ—¬ ν•΄μ‹œκ°’ 계산 ν›„ 비ꡐ
  8. μΌμΉ˜ν•  μ‹œ ν΄λΌμ΄μ–ΈνŠΈ 인증

참고자료

post-custom-banner

0개의 λŒ“κΈ€