티스토리 뷰

리눅스 서버 간에 비밀번호 없이 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
```

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크