티스토리 뷰
리눅스 서버 간에 비밀번호 없이 SSH로 접속하는 방법은 SSH 키 기반 인증을 설정하는 것입니다. 이 방법은 두 서버 간에 안전한 연결을 제공하며, 비밀번호를 입력할 필요가 없습니다. 아래 단계를 따라 설정할 수 있습니다:
1. **SSH 키 생성**: 먼저, 원격 서버에 접속하려는 로컬 서버(혹은 당신의 컴퓨터)에서 SSH 키를 생성합니다. 이 작업은 대개 사용자의 홈 디렉토리 아래 `.ssh` 폴더에 `id_rsa` (비공개 키)와 `id_rsa.pub` (공개 키) 두 파일을 생성합니다. 이미 키가 있다면 이 단계는 생략할 수 있습니다. 키를 생성하려면 다음 명령어를 사용합니다:
```
ssh-keygen -t rsa
```
이 명령어를 실행하면, 키의 저장 위치와 비밀번호(선택적)를 설정할 수 있습니다. 기본 위치에 저장하고 비밀번호를 설정하지 않으면, 비밀번호 없이 접속할 수 있습니다.
2. **공개 키 복사**: 생성된 공개 키(`id_rsa.pub`)를 원격 서버의 사용자 계정에 복사해야 합니다. 이를 위해 `ssh-copy-id` 명령어를 사용할 수 있습니다. 예를 들어, 원격 서버의 사용자 이름이 `username`이고 IP 주소가 `remote_server_ip`라면, 다음 명령어를 사용합니다:
```
ssh-copy-id username@remote_server_ip
```
이 명령은 원격 서버의 사용자의 홈 디렉토리 아래 `.ssh/authorized_keys` 파일에 로컬 서버의 공개 키를 추가합니다.
3. **SSH 접속 테스트**: 이제 비밀번호 없이 원격 서버에 접속할 수 있습니다. 다음과 같이 SSH로 접속을 시도해 보세요:
```
ssh username@remote_server_ip
```
처음 연결할 때, 서버의 지문(fingerprint)을 확인하라는 메시지가 나타날 수 있습니다. 이는 정상적인 절차이므로 `yes`를 입력하면 됩니다.
이 과정을 통해 안전하게 SSH 키 기반 인증을 설정할 수 있으며, 이후에는 해당 서버에 비밀번호 없이 접속할 수 있습니다. 이 방법은 더 안전하고 편리하며, 특히 자주 접속하는 서버나 자동화 스크립트에 유용합니다.
추가 내용
- RSA 키 발급
```shell
$ssh-keygen -t rsa -b 2048 -m PEM -f {서버를 뜻하는 이름}.pem
```
- 원격 서버에 공개키 전송
```shell
$scp .\{서버를 뜻하는 이름}.pub {username}@{서버아이피}:/home/{userhome}/.ssh/
#authorized_keys 생성
#원격서버접속
$cat ${서버를 뜻하는 이름}.pub >> authorized_keys
#linux 기반일 경우 위 작업을 아래 명령어로 한번에 처리할 수 있음
ssh-copy-id -i ./{공개키위치} {계정명}@ip-addresss
```
- 클라이언트 피씨에 Config 설정
```shell
#아래 파일이 없을 경우 생성
vi ~/.ssh/config
#config 내역
Host remote-was #host alias
Hostname ipadress #server ip
User remote_user #login user
IdentityFile ~/.ssh/premote-user.pem #비밀키
```
- 연결테스트
```shell
$ssh remote-was
```
'Chat GPT Log' 카테고리의 다른 글
PostgreSQL 백업 전략 (0) | 2023.09.27 |
---|---|
SOLID 원칙 중 리스코프 치환 법칙을 알기 쉽게 설명해줘 (0) | 2023.08.04 |
JPA ENTITY 에서 원시타입과 Wrapper 클래스중 뭘 사용해야 되나? (0) | 2023.08.04 |
세마포어를 쓰면 자원 공유 문제가 해결이 안 되지 않나? (0) | 2023.08.03 |
crontab 실행할때 실행 유저는 (0) | 2023.07.17 |
- Total
- Today
- Yesterday