[Centos 7] SSH-Keygen & SSH 공개키 생성

2022. 11. 25. 21:00리눅스(Linux)

SSH-Keygen

   - Putty 프로그램을 이용한 키 생성 작업 및 키 기반 인증작업 수행

   - 기존 패스워드 인증을 사용 안함 설정 후 작업을 진행

 

$ Linux 서버 테스트 

# vi /etc/ssh/sshd_config
43 PubkeyAuthentication yes
47 AuthorizedKeysFile      .ssh/authorized_keys
   - 인증파일 위치 확인
65 "PasswordAuthentication no " 
   - password 인증 안하기
   
# systemctl restart sshd 
   - 키 기반 인증시스템 사용하도록 SSH설정
   - 패스워드 인증 비활성화 확인 ( 접속시도 >> 실패 )

# cd /home/user
   - 키 인증시스템을 사용 할 사용자의 홈 디렉터리로 이동

# mkdir .ssh
# vi .ssh/authorized_keys
ssh-rsa AAAAB3N ....  rsa-key-20220610
   - 위에서 정의 한 키 파일의 경로와 이름에 맞게 키파일을 생성한다. 
   - 키 파일의 내용은 putty로 생성한 공개키 파일의 내용을 복사 후 붙여넣기 작업을 진행한다.

$ key 생성

1. putty gen 실행

2. Number of bits in a generated key 2048설정

3. Generate 버튼누르고 가운데 박스에 마우스를 움직여줘야함

4. 나오는 공개키를 .ssh/authorized_keys안에 복붙

5. Save private key 눌러서 (개인키)저장

$ 권한 부여

# chown user.user .ssh
# chown user.user .ssh/authorized_keys
# chmod 700 .ssh
# chmod 600 .ssh/authorized_keys
   - 구성 완료 후 Putty 접속 시 사용자이름 / 개인키를 지정하여 접속 테스트

$ win - Linux putty 접속


 

$  Linux - Linux SSH 연결 

# ssh [remote-IP]    
   - 계정을 따로 지정하지 않는다.

# ssh -l [user-name] [remote-IP]
# ssh [user-name]@[remote-IP] 
   - 어떤 계정에 접속할지 명시해놓는다.

 

 

 

$ 단순 키교환

   - 서버 1 : 192.168.1.100

   - 서버 2 : 192.168.1.150 

[ 서버 1 테스트 ]
# cd ~
   - 키를 저장할 경로( 기본값 : $HOME/.ssh/id_rsa)

# ssh-keygen -t rsa 
   - 엔터눌러서 기본값으로 키 생성

# passphrase 
   - 추가로 사용할 암호, 기본값 없음

# scp /home/root/.ssh/id_rsa.pub root@192.168.1.150:/home/user/
   - SCP을 이용해 ~/.ssh/id_rsa.pub를 서버2로 전송

[ 서버2 테스트 ]
# yum -y install at 
   - at이 설치되어 있지 않은 경우 yum을 이용해서 설치
# systemctl start atd
# systemctl enable atd
   - 서비스 시작

# at ~/id_rsa.pub >> ~/.ssh/authorized_keys
   - at 명령어로 공개키 등록

# touch testfile
   - 테스트를 위해 간단한 파일 생성

# scp testfile root@192.168.1.100:/
   - 비번물어보지 않으면 성공

 

$ SCP

   - 파일과 디렉터리를  보내거나 가져올 때 사용하는 파일 전송 프로토콜

   - ssh + cp

# scp [옵션] [파일명] [remote_id]@[remote_ip]:[받는 위치]
   - 단일 파일 보내기
   - 여러 파일을 포함하고 있는 디렉터리를 보낼때 ( -r ) 옵션 사용

[ 루트 권한 ] 
# scp /scp/A root@192.168.1.100:/scp 
   - 파일 보내기 

# scp root@192.168.1.100:/scp/B /scp 
   - 파일 가져오기

[ 일반 사용자 ]
$ scp /home/itbank/C itbank@192.168.1.100:/scp 
   - 파일 보내기, 받는 사람 쪽  other 권한 필요

$ scp itbank@192.168.1.100:/scp/D /scp 
   - 파일 가져오기, 보내는 사람 쪽 other 권한 필요