리눅스 - Secure SHell (SSH)

코린이·2024년 11월 10일

Linux

목록 보기
7/27
post-thumbnail

Secure SHell (SSH)

SSH는 리눅스 및 다른 유닉스 기반 운영체제에서 네트워크를 기반의 원격으로 시스템에 접속하고 명령어를 실행할 수 있게 해주는 네트워크 프로토콜이다.

  • SSH를 사용하면 네트워크를 통해 다른 컴퓨터에 안전하게 로그인하고, 원격 컴퓨터에서 명령을 실행하고, 파일을 한 컴퓨터에서 다른 컴퓨터로 전송할 수 있다.

SSH는 보안 연결을 제공하기 때문에 비밀번호와 데이터, 명령어가 암호화되어 전송된다.

  • 클라이언트가 서버PC에 연결하기 위해서는 SSH 서버의 IP주소 또는 호스트 이름과 함께 유효한 사용자의 이름, 비밀번호 또는 SSH Key가 필요하다.

원격 접속 방법

명령어목적사용예주요 특징
ssh원격 서버에 로그인하여 명령 실행ssh -p <포트번호> <사용자 이름>@<접속하고자 하는 호스트 이름/IP>터미널 세션을 열어 원격에서 명령어 실행
sftp원격 서버에 파일 전송sftp -P <포트번호> <사용자 이름>@<접속하고자 하는 호스트 이름/IP>파일 업로드/다운로드, 파일 관리 작업
scp원격 서버 간 파일 복사scp -P <포트번호> <복사할 파일명> <사용자 이름>@<접속하고자 하는 호스트 이름/IP>:<복사 파일 저장 위치(경로)>파일을 복사하는 데 특화된 명령어

📌 ssh

# 원격 접속
ssh -p <포트번호> <사용자 이름>@<접속하고자 하는 호스트 이름/IP>
ssh -p 2222 username@hostname

📌 sftp

# 원격 접속
sftp -P <포트번호> <사용자 이름>@<접속하고자 하는 호스트 이름/IP>


# 원격 접속 이후
# 파일 업로드
sftp> put <서버에 업로드할 파일명> <업로드할 서버 경로>
sftp> put local.txt /tmp

# 파일 다운로드
sftp> get <로컬에 다운로드할 파일명> <다운로드할 로컬 경로>
sftp> get /tmp/server.txt /Users/Shin

📌 scp

scp -P <포트번호> <복사할 파일명> <사용자 이름>@<접속하고자 하는 호스트 이름/IP>:<저장 경로(서버)>
scp -P 2222 test.txt username@hostname:/tmp

🔐 SSH - Key 방식 원격 접속

SSH 원격 접속은 key 방식으로도 접속이 가능하다.

Key 방식으로 SSH 원격 접속을 하려면, 로컬 시스템에 SSH Key가 있어야 한다.

SSH - Key 생성

# 기본 생성 명령어
# -t rsa  : 키의 타입 설정 (RSA 알고리즘을 사용하여 키 생성)
# -b 4096 : 키의 길이 설정 (4096 비트 크기로 생성) 
ssh-keygen -t rsa -b 4096


위와 같은 방법으로 생성할 경우 기본 기본 위치(~/.ssh)에 기본 이름(id_rsa)으로 키가 생성된다.
(기본 키의 타입은 RSA, 기본 크기는 2048비트 이다.)

생성될 키의 이름과 경로를 설정할 수 있다.

# 키 생성 위치 설정 옵션	: -f
# 키 생성 위치			:  ~/.ssh
# 키 이름				: ssh_rsa_key
ssh-keygen -t rsa -b 4096 -f ~/.ssh/ssh_rsa_key

생성될 키의 구분을 위해 주석을 설정할 수 있다.

# 키에 주석을 설정하는 옵션 : -C
ssh-keygen -t rsa -b 4096 -f ~/.ssh/ssh_rsa_key -C "office_key"

키 생성 명령어 ssh-keygen -t rsa -b 4096 -f ~/.ssh/ssh_rsa_key을 사용하면 로컬.ssh 위치에 office_keyoffice_key.pub이 생성된다.

  • office_key : Private 키로 개인이 소유해야 한다. (공유 X, 🔑열쇠 같은 느낌)
  • office_key.pub : Public 키로 서버에 해당 키가 있어야 한다. (🔒자물쇠 같은 느낌)

공개 키(Public Key)서버로 복사하기

# 공개 키 복사 -> 서버로 이동 명령어
# ssh-copy-id		: 키 복사 명령어
# -i				: 아이디 파일(공개 키) 지정 옵션
ssh-copy-id -i ~/.ssh/office_key.pub username@hostname

Key를 사용하여 SSH 원격 접속

ssh -i ~/.ssh/office_key username@hostname

0개의 댓글