🐧운영체제/λ¦¬λˆ…μŠ€

λ¦¬λˆ…μŠ€ - ssh λ™μž‘ 원리

Janger 2022. 8. 1. 04:10
728x90

λ””ν”Ό-ν—¬λ¨Ό ν‚€ κ΅ν™˜(Diffie–Hellman key exchange)

μ•”ν˜Έ ν‚€λ₯Ό κ΅ν™˜ν•˜λŠ” ν•˜λ‚˜μ˜ λ°©λ²•μœΌλ‘œ, λ‘ μ‚¬λžŒμ΄ μ•”ν˜Έν™”λ˜μ§€ μ•Šμ€ ν†΅μ‹ λ§μ„ ν†΅ν•΄ κ³΅ν†΅μ˜ λΉ„λ°€ ν‚€λ₯Ό κ³΅μœ ν•  μˆ˜ μžˆλ„둝 ν•œλ‹€.

 

 

μ„œλ²„ 인증

 

1. μ„œλ²„μ— μƒμ„±λœ κ³΅κ°œν‚€λ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ˜ know_host νŒŒμΌμ— μ €μž₯
2. ν΄λΌμ΄μ–ΈνŠΈκ°€ λ‚œμˆ˜ 값을 생성해 λ‚œμˆ˜ κ°’μ˜ ν•΄μ‹œκ°’μ„ μ €μž₯ ν›„ λ‚œμˆ˜ 값을 μ„œλ²„μ—κ²Œ κ³΅κ°œν‚€λ‘œ μ•”ν˜Έν™”ν•΄ 이λ₯Ό 전달
3. μ„œλ²„κ°€ μ•”ν˜Έν™”ν•œ λ‚œμˆ˜ 값을 κ°œμΈν‚€λ‘œ λ³΅ν˜Έν™”, 이 λ‚œμˆ˜μ˜ ν•΄μ‹œκ°’μ„ ν΄λΌμ΄μ–ΈνŠΈκ°€ 전달받아 μ„œλ²„κ°€ 정상적인 μ„œλ²„μΈμ§€λ₯Ό 검증



μ‚¬μš©μž 인증

1. μ΄λ²ˆμ—” ν΄λΌμ΄μ–ΈνŠΈκ°€ λΉ„λŒ€μΉ­ν‚€(κ³΅κ°œν‚€, λΉ„κ³΅κ°œ ν‚€)λ₯Ό 생성해 μ„œλ²„μ—κ²Œ κ³΅κ°œν‚€(id_rsa.pub) 전달
2. 전달받은 κ³΅κ°œν‚€λŠ” μ„œλ²„μ˜ authorized_keys에 λ”°λ‘œ 보관
3. μ„œλ²„κ°€ λ‚œμˆ˜λ₯Ό 생성해 ν•΄μ‹œκ°’μ€ μžμ‹ μ΄ λ³΄κ΄€ν•˜κ³  λ‚œμˆ˜ 값을 κ³΅κ°œν‚€λ‘œ μ•”ν˜Έν™”ν•΄ ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ 전달
4. ν΄λΌμ΄μ–ΈνŠΈλŠ” κ°œμΈν‚€λ‘œ μ•”ν˜Έν™”λœ λ‚œμˆ˜ 값을 λ³΅ν˜Έν™”ν•΄ ν•΄μ‹œκ°’μ„ κ΅¬ν•œ λ‹€μŒ μ„œλ²„μ—κ²Œ 전달 5. μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈκ°€ 보낸 ν•΄μ‹œκ°’κ³Ό μžμ‹ μ΄ λ³΄κ΄€ν•˜κ³  μžˆλŠ” ν•΄μ‹œκ°€ μΌμΉ˜ν•œκ°€λ₯Ό 검증



.pem ν˜•μ‹


AWS EC2λŠ” ν‚€ 파일 ν˜•νƒœκ°€ .pem ν˜•μ‹μΈλ° μ΄λŠ” κ°œμΈν‚€ 파일 ν˜•μ‹μ΄λΌκ³  ν•œλ‹€. (.pubλŠ” κ³΅κ°œν‚€)
.pubλŠ” 사전에 κ²€μ¦λœ ν΄λΌμ΄μ–ΈνŠΈλ§Œμ˜ μ„œλ²„μ— μ ‘κ·Ό κ°€λŠ₯ν•œ 인증 μˆ˜λ‹¨μ΄μ§€λ§Œ .pem 같은 κ²½μš°λŠ” μ—¬λŸ¬ λ””λ°”μ΄μŠ€μ—μ„œ .pem ν‚€ 파일만 κ°€μ§€κ³  μžˆμ–΄λ„ μ–Έμ œλŠ” μ„œλ²„λ‘œ 접속이 κ°€λŠ₯ν•˜λ‹€.

.pem ν˜•μ‹ λ§Œλ“€κΈ°

openssl rsa -in id_rsa -pubout -out id_rsa.pub.pem

https://unix.stackexchange.com/questions/26924/how-do-i-convert-a-ssh-keygen-public-key-into-a-format-that-openssl-pem-read-bio

 

How do I convert a ssh-keygen public key into a format that openssl PEM_read_bio_RSA_PUBKEY() function will consume?

I'm having an issue generating a public key that the openssl PEM_read_bio_RSA_PUBKEY() function can consume. I keep getting errors. Obviously I cannot simply use the ASCII string in the ssh-keyge...

unix.stackexchange.com


접속 방법:

ssh -i key.pem 123.123.123.123

-i μ˜΅μ…˜μ„ μ‚¬μš©ν•˜λ©΄ λœλ‹€.

μ°Έκ³ :

 

SSH pem keygen λ§Œλ“€κΈ°

# 2048 λΉ„νŠΈμ˜ RSAν‚€ 생성 ssh-keygen -t rsa -b 2048 -f [νŒŒμΌμ΄λ¦„] # Server에 authorized_keys 파일 생성 (파일이 μ—†λŠ” 경우) mkdir ~/.ssh/ chmod 700 ~/.ssh/ touch ~/.ssh/authorized_keys chmod 600 ~/.ssh..

aimb.tistory.com


https://aimb.tistory.com/m/227



데이터 μ•”ν˜Έν™”

μ„œλ²„ 인증과 μ‚¬μš©μž 인증이 μ™„λ£Œλ˜λ©΄ λ‹€μ‹œ λΉ„λŒ€μΉ­ν‚€λ₯Ό 톡해 μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ‘œ λŒ€μΉ­ν‚€λ₯Ό κ΅ν™˜ λͺ¨λ“  데이터 톡신은 이 λŒ€μΉ­ν‚€(μ„Έμ…˜ ν‚€)둜 μ•”λ³΅ν˜Έν™”κ°€ 이루어진닀.
톡신이 μ’…λ£Œλ˜λ©΄ μ„Έμ…˜ ν‚€λŠ” λ§Œλ£Œλ˜μ–΄ μ²˜λΆ„ν•œλ‹€.

κ΄€λ ¨ λͺ…λ Ήμ–΄

 

ssh-keygen -t rsa

ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ rsa λ°©μ‹μœΌλ‘œ λΉ„λŒ€μΉ­ν‚€ μƒμ„±ν•˜λŠ” λͺ…λ Ήμ–΄μž„ ~/.ssh κ²½λ‘œμ— κ°€λ©΄ κ³΅κ°œν‚€μ™€ λΉ„κ³΅κ°œ ν‚€κ°€ μƒμ„±λ˜μ–΄μžˆλ‹€.


ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@123.123.123.123

κ³΅κ°œν‚€λ₯Ό μ„œλ²„μ˜ authorized_keys에 μžλ™μ μœΌλ‘œ μ €μž₯μ‹œμΌœμ£ΌλŠ” λͺ…λ Ήμ–΄



좜처 및 참고:
https://medium.com/@labcloud/ssh-%EC%95%94%ED%98%B8%ED%99%94-%EC%9B%90%EB%A6%AC-%EB%B0%8F-aws-ssh-%EC%A0%91%EC%86%8D-%EC%8B%A4%EC%8A%B5-33a08fa76596

 

SSH μ•”ν˜Έν™” 원리 및 AWS SSH 접속 μ‹€μŠ΅

SSH μ•”ν˜Έν™” 방식에 λŒ€ν•œ μ„€λͺ…

medium.com


https://myjamong.tistory.com/240

 

[CentOS] ssh password μž…λ ₯ 없이 둜그인 ν•˜κΈ°, ssh-keygen κ³΅κ°œν‚€ 생성

 SSH 둜그인 OS : CentOS Linux release 7.8 hosts: 222.111.71.200, 222.111.71.201 user: root λͺ©ν‘œ : 222.111.71.200 root κ³„μ •μ—μ„œ 222.111.71.201 rootκ³„μ •μœΌλ‘œ κ³΅κ°œν‚€λ₯Ό μ΄μš©ν•œ ssh 접속 λ‹€λ₯Έ μ„œλ²„μ— 접속..

myjamong.tistory.com


https://originalchoi.tistory.com/m/entry/ssh-%ED%86%B5%EC%8B%A0%EC%9D%98-%EC%84%B8%EB%B6%80-%EC%9B%90%EB%A6%AC

 

ssh ν†΅μ‹ μ˜ μ„ΈλΆ€ 원리

ssh λŠ” Secure Shell 의 μ€„μž„λ§λ‘œ 원격 ν˜ΈμŠ€νŠΈμ— μ ‘μ†ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” ν”„λ‘œν† μ½œμ΄κ³  κΈ°λ³Έμ μœΌλ‘œλŠ” 22번 포트λ₯Ό μ‚¬μš©ν•˜κ³ , ssh λ₯Ό 기반으둜 νŒŒμΌλ³΅μ‚¬ 등도 κ°€λŠ₯ν•©λ‹ˆλ‹€. * putty 같은 터미널 ν”„λ‘œκ·Έλž¨

originalchoi.tistory.com

 

728x90