Tech

[Tech]Ubuntu 22.04 ssh 패스워드 없이 접속하는 방법.

hongcoder 2024. 10. 4. 19:50

여러 노드들을 운영하다 보면 노드들 사이에 패스워드 없이 접속하는 방법이 필요할 때가 있다.

예를 들어 Hadoop을 사용한다던가, OpenMPI를 사용하는 경우에 해당된다.

이제 순서대로 패스워드 없이 노드에 ssh 접속을 하는 방법을 정리하도록 하겠다.


  1. 설치 환경
  2. SSH 설정

1. 설치 환경

Node01
- OS: Ubuntu 22.04
- Host name: node01
- IP: 192.168.0.10

Node02
- OS: Ubuntu 22.04
- Host name: node02
- IP: 192.168.0.11

 

2개의 노드를 준비했다.

node01 에서 node02 ssh 접속을 패스워드 없이 하는 과정이다.


2. SSH 설정

우선 리눅스에 SSH가 설치 되어있지 않다면 설치를 진행해 주어야 한다.

모든 노드에서 진행해준다.

# 저장소 업데이트
$ sudo apt update

# ssh 설치
$ sudo apt install openssh-server

# 설치 확인
$ sudo systemctl status ssh

 

 

다음으로 ssh 공개키 인증 설정을 해 주어야 한다.

$ sudo vi /etc/ssh/sshd_config

 

 

해당 라인의 주석을 해제한다. (해당 라인이 없다면 sshd_config파일에 작성해주도록 한다.)

...
PubkeyAuthentication yes
...

 

 

다음으로 hosts파일을 수정해 준다.

$ sudo vi /etc/hosts
127.0.0.1 localhost
# hosts
192.168.0.10 node01
192.168.0.11 node02
...

 

 

다음으로 ssh를 생성해 준다.

ssh-keygen 명령어 이후에 Enter키로 넘어가 준다.

$ chmod 700 ~/.ssh
$ ssh-keygen -t rsa -P ""
# Enter

 

 

이제 생성된 ssh 키를 다른 노드에 복사해 준다.

# 필자는 node01에서 node02로 ssh 접속을 하는 경우이다.
$ ssh-copy-id -i ~/.ssh/id_rsa.pub node01 # 꼭 해당 노드에도 복사를 진행해주자.
$ ssh-copy-id -i ~/.ssh/id_rsa.pub node02

이제 node01 에서 ssh node02 커맨드를 입력하면 패스워드 없이 ssh 접속이 되는걸 확인할 수 있다.

 


※ 잘못된 정보가 있을 경우 피드백 해 주시면 감사하겠습니다.