공개키 기반 암호없이 ssh 접속하기
이 방법은 Remote가 Linux인 경우에 유효하다.
다음은 Local PC에서 진행하는 환경설정으로 윈도우인 경우엔 사전에 git bash가 필요하다.
1. 리눅스인 경우 쉘에서, 윈도우인 경우 git bash에서 'ssh-keygen'을 치고 질문이 나오면 엔터를 연타한다.
ssh-keygen
이렇게 하면 리눅스인 경우 ~/.ssh/ 경로에, 윈도우 git bash인 경우 C:\SPB_Data\.ssh\ 경로에 아래 두 파일이 생성된다.
- id_rsa (공개키)
- id_rsa.pub (비공개키)
2. 공개키를 서버로 복사한다.
ssh-copy-id 사용자@서버IP
생성한 공개키를 ssh-copy-id 명령을 통해 접속 대상 서버의 ~/.ssh/authorized_keys 파일에 추가한다.
3. 윈도우인 경우에만 git bash에서 생성된 공개키를 C:\Users\사용자이름\.ssh\ 디렉토리 안에 복사해준다.
cp /c/SPB_Data/.ssh/id_rsa /c/Users/사용자이름/.ssh/
git bash에서 생성된 공개키는 C:\SPB_Data\.ssh\ 경로에 저장되는데, 명령 프롬프트에서 ssh를 사용할 때 기본적으로 참조하는 경로는 C:\Users\사용자이름\.ssh\이기 때문에 여기에도 같은 키를 복사해줘야 명령 프롬프트로도 암호 없이 서버에 접속할 수 있다.
서버를 재설치했더니 SSH 접속시 경고가 뜨는 경우 해결 방법
아래 메시지는 서버의 호스트 키가 바뀐 것을 SSH 클라이언트가 감지했을 때 발생하는 일반적인 경고다.
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
리눅스인 경우 쉘에서, 윈도우인 경우 명령 프롬프트에서 다음 명령을 입력한다.
ssh-keygen -R 서버IP
이렇게 하면 로컬의 .ssh/known_hosts 파일에서 해당 서버의 이전 호스트 키 정보를 찾아 지운다.
✔ ssh-copy-id 명령 사용 시 내부 동작은 다음과 같다.
# 1. 원격 서버에 .ssh 디렉토리 생성 및 권한 설정
ssh user@remote_host 'mkdir -p ~/.ssh && chmod 700 ~/.ssh'
# 2. authorized_keys 파일 생성 및 권한 설정
ssh user@remote_host 'touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys'
# 3. 로컬 공개 키를 원격 서버에 추가
cat ~/.ssh/id_rsa.pub | ssh user@remote_host 'cat >> ~/.ssh/authorized_keys'
'운영체제 > Windows' 카테고리의 다른 글
Windows ] BitLocker 비활성화 하기 (0) | 2025.01.09 |
---|---|
배치파일에서 call 명령어 사용법 (0) | 2024.12.15 |
배치 파일에서 명령 인수 활용법 (0) | 2024.12.13 |
배치파일에서 setlocal, setlocal enabledelayedexpansion 사용법 (0) | 2024.12.11 |
DISM을 사용하여 Windows 기능 켜기/끄기 하는 법 (0) | 2024.10.16 |