SSH는 리눅스 및 다른 유닉스 기반 운영체제에서 네트워크를 기반의 원격으로 시스템에 접속하고 명령어를 실행할 수 있게 해주는 네트워크 프로토콜이다.
SSH는 보안 연결을 제공하기 때문에 비밀번호와 데이터, 명령어가 암호화되어 전송된다.
| 명령어 | 목적 | 사용예 | 주요 특징 |
|---|---|---|---|
| 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 방식으로도 접속이 가능하다.
Key 방식으로 SSH 원격 접속을 하려면, 로컬 시스템에 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_key와 office_key.pub이 생성된다.
# 공개 키 복사 -> 서버로 이동 명령어 # ssh-copy-id : 키 복사 명령어 # -i : 아이디 파일(공개 키) 지정 옵션 ssh-copy-id -i ~/.ssh/office_key.pub username@hostname
ssh -i ~/.ssh/office_key username@hostname