μ§λ ν¬μ€ν
μμ ssh λͺ
λ Ήμ΄μ κΈ°λ³Έμ μΈ μ¬μ©λ²κ³Ό μ μ©ν μ΅μ
λ€μ μ΄ν΄λ³΄μμ΅λλ€. νμ§λ§ λ§€λ² λ³΅μ‘ν IP μ£Όμ, μ¬μ©μ μ΄λ¦, ν¬νΈ λ²νΈ λ±μ μΌμΌμ΄ μ
λ ₯νλ κ²μ μ¬κ° λ²κ±°λ‘μ΄ μΌμ΄ μλλλ€.
μ΄λ΄ λ SSH Config νμΌμ νμ©νλ©΄ μ΄λ° λ²κ±°λ‘μμ ν λ²μ ν΄κ²°ν μ μμ΅λλ€. λ§μΉ μ¦κ²¨μ°ΎκΈ°μ²λΌ μμ£Ό μ¬μ©νλ μλ² μ μ μ 보λ₯Ό μ μ₯ν΄λκ³ λ³μΉ(Alias) μΌλ‘ μμ½κ² μ μν μ μμ΅λλ€.
μ μμ config νμΌμ μ‘΄μ¬λ₯Ό λͺ¨λ₯΄λ "μμ μ΄λ³΄"μμ μλ 'μ΄ λ³΅μ‘ν ssh μ°κ²° λͺ
λ Ήμ΄λ₯Ό μ΄λ»κ² λ§€λ² μμ±νμ§?' λΌλ μκ°μ μμ£Ό μ°λ λͺ
λ Ήμ΄ μ€μ κ·Έλλ‘ .bashrcνμΌμ alias λ±λ‘μ ν΄λκ³ μ΄ μ λ μμμ΅λλ€. λμ€μ configνμΌ μμ±λ²μ μκ³ λμλ λ΄κ° μΌλ§λ 무μν λ°©λ²μΌλ‘ μ¬μ©ν λμ§ μ μ μμμ΅λλ€.

SSH Config νμΌμ 무μμΈκ°μ?
SSH Config νμΌμ SSH ν΄λΌμ΄μΈνΈμ λμ λ°©μμ μ¬μ©μ μ μνλ μ€μ νμΌμ λλ€. μ΄ νμΌμ νΉμ νΈμ€νΈμ λν μ μ μ 보(μ¬μ©μ μ΄λ¦, ν¬νΈ, μ¬μ©ν ν€ νμΌ λ±)λ₯Ό 미리 μ μ₯ν΄λλ©΄, λμ€μ μ μν λ μ§§μ λ³μΉλ§μΌλ‘ μ μμ΄ κ°λ₯ν΄μ§λλ€.
-
μμΉ: μΌλ°μ μΌλ‘ μ¬μ©μ ν λλ ν 리μ
.sshν΄λ μμconfigλΌλ μ΄λ¦μΌλ‘ μ‘΄μ¬ν μλ μμ΅λλ€. sshλ₯Ό μ²μ μ€μΉ νμ ¨λ€λ©΄ μμ κ²λλ€.μ΄λ΄λ λ§λ€μ΄μΌ ν©λλ€. -
νμΌ μμ±: λ§μ½
~/.ssh/configνμΌμ΄ μλ€λ©΄, μ§μ μμ±ν΄ μ£Όλ©΄ λ©λλ€. κΆνμ λ°λμ 600μΌλ‘ νμΈμ.
touch ~/.ssh/config
chmod 600 ~/.ssh/config # 보μμ μν΄ κΆν μ€μ μ νμ!
Config νμΌ μμ± κ·μΉ
Config νμΌμ κ°λ¨ν ν
μ€νΈ νμΌμ΄λ©°, κ° νΈμ€νΈμ λν μ€μ μ Host ν€μλλ‘ μμνμ¬ λΈλ‘ ννλ‘ μμ±λ©λλ€.
기본 ꡬ쑰
Host [λ³μΉ]
[μ΅μ
1] [κ°1]
[μ΅μ
2] [κ°2]
...
Host [λ³μΉ]: μ΄ λΈλ‘μ μμμ μλ¦¬κ³ , μ¬λ¬λΆμ΄ μ¬μ©ν λ³μΉ(Alias) μ μ μν©λλ€. μ΄ λ³μΉμ SSH λͺ λ Ήμ΄μ μ¬μ©νκ² λ©λλ€. λ³μΉ λμ μ€μ νΈμ€νΈ μ£Όμ(IP λλ λλ©μΈ)λ₯Ό μ§μ λ£μ μλ μμ΅λλ€. μμΌλμΉ΄λ λ¬Έμ(*,?)λ μ¬μ©ν μ μμ΅λλ€.- λ€μ¬μ°κΈ°:
Hostμλμ μ΅μ λ€μ λ€μ¬μ°κΈ°λ₯Ό ν΄μΌ ν©λλ€. 곡백μ΄λ νμ μ¬μ©ν΄λ λμ§λ§, μΌκ΄μ±μ μ μ§νλ κ²μ΄ μ’μ΅λλ€. - μ΅μ
:
Hostμλμλ ν΄λΉ λ³μΉμΌλ‘ μ μν λ μ μ©λ λ€μν SSH μ΅μ λ€μ λμ΄ν©λλ€. μ΄ μ΅μ λ€μ μ΄μ μssh -μ΅μ ννλ‘ μ¬μ©νλ κ²λ€κ³Ό λμΌν©λλ€.
μμ£Ό μ¬μ©λλ μ΅μ λ€
| μ΅μ | μ€λͺ | μμ κ° |
HostName |
μ€μ μ μν μλ²μ IP μ£Όμ λλ λλ©μΈ μ΄λ¦ | 192.168.1.100 λλ example.com |
User |
μ격 μλ²μ μ μν μ¬μ©μ κ³μ μ΄λ¦ | ubuntu, ec2-user, root |
Port |
μ격 μλ²μ SSH ν¬νΈ λ²νΈ (κΈ°λ³Έκ° 22) | 2222 |
IdentityFile |
μ μ μ μ¬μ©ν λΉκ³΅κ° ν€ νμΌμ κ²½λ‘ | ~/.ssh/id_ed25519_myserver |
ForwardAgent |
SSH μμ΄μ νΈ ν¬μλ© νμ±ν (Agent Forwarding, ssh-agent μ¬μ© μ) |
yes |
StrictHostKeyChecking |
νΈμ€νΈ ν€ κ²μ¬λ₯Ό μ격νκ² ν μ§ μ¬λΆ (yes κΆμ₯) |
no (μ΄κΈ° ν
μ€νΈ μ μμλ‘ μ¬μ©) |
PortForwarding |
ν¬νΈ ν¬μλ© νμ© μ¬λΆ | yes |
LocalForward |
λ‘컬 ν¬νΈ ν¬μλ© μ€μ (-L μ΅μ
κ³Ό λμΌ) |
8080 localhost:80 |
ServerAliveInterval |
μλ²κ° μ΄μμλμ§ νμΈνλ μΈν°λ² (μ΄ λ¨μ) | 60 (μ°κ²° λκΉ λ°©μ§) |
ServerAliveCountMax |
μλ² νμΈ μ€ν¨ μ μ°κ²°μ λκΈ° μ μ¬μλ νμ | 3 |
SSH Config νμΌ μμ± μμ
μμ£Ό μ μνλ λͺ κ°μ§ μλ²μ λν μ€μ μ ~/.ssh/config νμΌμ μΆκ°ν΄ λ΄
μλ€.
# 첫 λ²μ§Έ μλ²: μΉ μλ² (λ³μΉ: webserver)
Host webserver
HostName 192.168.1.100
User ubuntu
Port 2222
IdentityFile ~/.ssh/id_ed25519_webserver # μΉ μλ² μ μ© ν€ μ¬μ©
# λ λ²μ§Έ μλ²: κ°λ° μλ² (λ³μΉ: devbox)
Host devbox
HostName dev.example.com
User developer
IdentityFile ~/.ssh/id_rsa_dev # RSA ν€ μ¬μ©
# μ΄ μλ²μ μ μν λ λ‘컬 8000ν¬νΈλ₯Ό μ격 μλ²μ 80ν¬νΈλ‘ ν¬μλ©
LocalForward 8000 localhost:80
# μΈ λ²μ§Έ μλ²: λͺ¨λ AWS EC2 μλ² (λ³μΉ: aws-*)
Host aws-*
User ec2-user
IdentityFile ~/.ssh/aws_ec2_key.pem
# μ°κ²°μ΄ λμ΄μ§μ§ μλλ‘ μ£ΌκΈ°μ μΌλ‘ μ νΈλ₯Ό 보λ
ServerAliveInterval 60
ServerAliveCountMax 3
# νΉμ IP λμμ λν μΌλ° μ€μ (λ³μΉ: 10.0.0.*)
Host 10.0.0.*
User admin
Port 22
μ€λͺ :
webserver:192.168.1.100μλ²μubuntuμ¬μ©μλ‘2222λ² ν¬νΈμid_ed25519_webserverν€λ₯Ό μ¬μ©νμ¬ μ μν μ μκ² λ©λλ€.devbox:dev.example.comμλ²μdeveloperμ¬μ©μλ‘id_rsa_devν€λ₯Ό μ¬μ©νμ¬ μ μνλ©°, λ‘컬 8000λ² ν¬νΈλ₯Ό μ격 80λ² ν¬νΈλ‘ ν¬μλ©ν©λλ€.aws-*:aws-λ‘ μμνλ λͺ¨λ λ³μΉμ μ μ©λλ μ€μ μ λλ€. μλ₯Ό λ€μ΄aws-prodλaws-devλ‘ μ μνλ©΄UserμIdentityFileμ€μ μ΄ μλμΌλ‘ μ μ©λ©λλ€.HostNameμaws-prodλ‘ μ μ μprodκ° λ©λλ€ (λμ€μssh aws-prodλͺ λ Ήμ΄λ‘ μ¬μ©).10.0.0.*:10.0.0.xννμ IP μ£Όμμ μ μν λ μλμΌλ‘adminμ¬μ©μ λ° κΈ°λ³Έ 22λ² ν¬νΈκ° μ μ©λ©λλ€.
μ¬μ€, μμ μμμ
*μμΌλμΉ΄λλ°©μμ μΌλ¨ μκ°λ νμ§λ§, μ€μ λ‘ μ λ κ±°μ μ λ° λ°©μμ μ¬μ©νμ§ μμ΅λλ€. κ·Έλ₯ μλ²νλμ μ€μ νλ 1:1λ‘ λ§€ννλκ² κ΄λ¦¬νκΈ°λ μ½μ΅λλ€.
κ°μ μλ²λ₯Ό λ€λ₯Έ μ€μ μΌλ‘ μ κ·Όνλ κ²½μ°λ μκΈ° λλ¬Έμ κ·Έλ΄λλ§λ€ μ€μ νλμ© μΆκ°ν΄λκ³ , λ§μΉ λ μ€ν λμμ λ©λ΄ν λ³΄κ³ μμ κ³ λ₯΄λ―μ΄ λ³μΉμ 골λΌμssh my-aliasμ΄λ° μμΌλ‘ μ£Όλ¬Έλ§ νλ©΄ λλλ‘ κ΅¬μ±ν©λλ€.

Config νμΌ μ¬μ© λ°©λ²
μ΄μ Config νμΌμ μ€μ μ μ μ₯νλ€λ©΄, μ€μ μ μμ ν¨μ¬ κ°λ¨ν΄μ§λλ€. μ μμλ₯Ό λ°νμΌλ‘ ν΄λ³ΌκΉμ?
1. λ³μΉμΌλ‘ μ μνκΈ°
λ³μΉλ§ μ¬μ©νμ¬ SSH μ μ λͺ λ Ήμ΄λ₯Ό μ€νν©λλ€.
webserverλ³μΉ μ¬μ©:
ssh webserver
Enter passphrase for key '/home/youruser/.ssh/id_ed25519_webserver':
ubuntu@webserver-ip:~ $
μ λͺ λ Ήμ΄λ λ΄λΆμ μΌλ‘
ssh -p 2222 -i ~/.ssh/id_ed25519_webserver ubuntu@192.168.1.100κ³Ό λμΌνκ² λμν©λλ€.
devboxλ³μΉ μ¬μ©:
ssh devbox
Enter passphrase for key '/home/youruser/.ssh/id_rsa_dev':
developer@devbox-domain:~ $
(λμμ λ‘컬 8000λ² ν¬νΈλ‘ μ μνλ©΄ dev.example.comμ 80λ² ν¬νΈλ‘ μ°κ²°λ¨)
Config νμΌ μ¬μ©μ μ₯μ
- νΈμμ±: κΈΈκ³ λ³΅μ‘ν SSH λͺ λ Ήμ΄λ₯Ό μ§§μ λ³μΉμΌλ‘ λ체νμ¬ μ λ ₯ μ€λ₯λ₯Ό μ€μ΄κ³ μκ°μ μ μ½ν μ μμ΅λλ€.
- μμ°μ±: μμ£Ό μ μνλ μλ²λ₯Ό λΉ λ₯΄κ² μ€κ° μ μμ΄ μμ ν¨μ¨μ΄ λμμ§λλ€.
- κ΄λ¦¬ μ©μ΄μ±: λͺ¨λ μ μ κ΄λ ¨ μ€μ μ νκ³³μμ κ΄λ¦¬ν μ μμ΄ μ μ§λ³΄μκ° μ©μ΄ν©λλ€. μλ₯Ό λ€μ΄, μλ²μ IP μ£Όμκ° λ³κ²½λλλΌλ Config νμΌλ§ μμ νλ©΄ λ©λλ€.
- 보μ: μ€μν μ 보(μ: ν€ νμΌ κ²½λ‘)λ₯Ό λͺ λ Ήμ΄ νμ€ν 리μ λ¨κΈ°μ§ μμλ λ©λλ€.
λ§μΉλ©°
SSH Config νμΌμ SSHλ₯Ό μ¬μ©νλ λͺ¨λ κ°λ°μμ μμ€ν
κ΄λ¦¬μμκ² νμμ μΈ λꡬμ
λλ€. μ΄ νμΌμ νμ©νμ¬ μ¬λ¬λΆμ SSH μ μ κ²½νμ ν¨μ¬ λ νΈλ¦¬νκ³ ν¨μ¨μ μΌλ‘ λ§λ€ μ μμ΅λλ€. ~/.ssh/config νμΌμ μ΄κ³ μ¬λ¬λΆλ§μ λ³μΉμ λ§λ€μ΄ 보μΈμ!
SSH μ κ΄λ ¨λ λ€λ₯Έ ν¬μ€ν λ ν¨κ» μ½μ΄λ³΄μΈμ! μ€λ₯Έμͺ½ κ²μμ°½μμ ' ssh' λ₯Ό κ²μνμλ©΄ ssh μ κ΄λ ¨ν λ€μν κΈμ λ³΄μ€ μ μμ΅λλ€.
κΆκΈν μ μ΄ μλ€λ©΄ μΈμ λ μ§ λκΈλ‘ μ§λ¬Έν΄μ£ΌμΈμ!