-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
2f3a0d8
commit 9b97ef9
Showing
7 changed files
with
153 additions
and
83 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
--- | ||
layout: post | ||
title: 개념-ssh | ||
date: 2024-06-24 16:06 +0900 | ||
author: songdaegeun | ||
categories: | ||
tags: ["ssh"] | ||
pin: false | ||
math: true | ||
--- | ||
|
||
#### public key(대칭키) and private key(공개키, 비대칭키) | ||
- 대칭키 | ||
암호화와 복호화에 사용하는 키가 동일한 방식 | ||
- 비대칭키 | ||
암호화에 사용하는 키(public key)와 복호화에 사용하는 키(private key)가 다른 방식 | ||
public key는 공개적으로 배포가 가능. | ||
|
||
#### ssh? | ||
![ssh_scheme.png](/assets/img/개념/2024-06-24-개념-ssh/ssh_scheme.png){: width="200"} | ||
원격지의 셸에 접속하기 위해 사용되는 네트워크 프로토콜이다. | ||
암호화가 이루어지지 않는 텍스트 기반 통신인 telnet에 비교하여 보안성이 높은 프로토콜이며, | ||
키 교환 알고리즘 기반의 암호화 기능을 추가하여 1995년에 공개된 프로토콜이다. | ||
|
||
server의 공개키는 client가 처음으로 접속을 시작할 때 취득한다. | ||
client의 공개키는 프로토콜 이외의 방식으로 server의 ~/.ssh/authorized_keys 파일에 입력한다. | ||
|
||
#### 사용환경 | ||
서버: Ubuntu 18.04 | ||
클라이언트: macos 14.5 | ||
|
||
#### server setting | ||
|
||
``` | ||
# ssh server 설치 확인 | ||
apt list openssh* | ||
# 설치안된경우 설치 | ||
apt install openssh-server | ||
# sshd status확인 | ||
systemctl status sshd | ||
# sshd status가 active가 아닌 경우 restart | ||
systemctl restart sshd | ||
###### 필요하면 수행 ##### | ||
# sshd port(22)가 LISTEN state인지 확인 | ||
# ss -nlt (in ubuntu) | ||
# netstat -an | grep LISTEN (in macos m1) | ||
# 방화벽 활성화여부 확인 | ||
# ufw staus | ||
# 방화벽 rule확인 | ||
# iptables -nL (in macos m1) | ||
# 필요하면 방화벽 활성화 | ||
# ufw enable | ||
# 방화벽에 22/tcp 허용 | ||
# ufw allow 22/tcp | ||
###### 필요하면 수행 ##### | ||
``` | ||
|
||
sshd_config파일설정 | ||
``` | ||
Port 22 | ||
PermitRootLogin yes | ||
PubkeyAuthentication yes | ||
AuthorizedKeysFile .ssh/authorized_keys | ||
PasswordAuthentication no | ||
``` | ||
PermitRootLogin는 보안상 no를 하는 것이 좋지만, 연구실에서는 yes로 한다. | ||
ssh설정 중에 client에서 server로 ssh-copy-id를 통해 publickey를 복사해야하므로, | ||
PasswordAuthentication는 yes로 해두고, publickey를 통한 ssh연결 setting이 끝나면 no로 한다. | ||
|
||
설정이 끝나면, sshd를 restart해야 적용된다. | ||
|
||
server가 client의 공개키를 가졌는지 확인 | ||
``` | ||
vi ~/.ssh/authorized_keys | ||
``` | ||
client에서 동일한 key로 다른 machine에 ssh연결을 원하는 경우, ~/.ssh파일을 원하는 machine에 복사하면 된다. | ||
|
||
#### client setting | ||
|
||
``` | ||
# ssh key 생성 | ||
# ssh-keygen -t rsa -b 4096 -f {keyfile이름} | ||
ssh-keygen -t rsa -b 4096 | ||
# public key를 server에 복사 | ||
# server에서 vi ~/.ssh/authorized_keys로 확인가능 | ||
ssh-copy-id -i mykey.pub {user}@{ip} | ||
``` | ||
|
||
|
||
#### 참고문서 | ||
[공개키암호화,ssh](https://velog.io/@lehdqlsl/SSH-%EA%B3%B5%EA%B0%9C%ED%82%A4-%EC%95%94%ED%98%B8%ED%99%94-%EB%B0%A9%EC%8B%9D-%EC%A0%91%EC%86%8D-%EC%9B%90%EB%A6%AC-i7rrv4de) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.