SSH Server(Windows10) Key 기반 접속

2024. 8. 5. 11:45·[Window]
반응형

이전글

2024.07.22 - [[Window]] - SSH Server(Windows10) ↔ SSH Client(Windows10) 설정

 

SSH Server(Window10) ↔ SSH Client(Window10) 설정

SSH(Secure Shell) 란컴퓨터에 로그인하거나 원격으로 시스템을 제어하기 위한 암호화된 네트워크 프로토콜.CLI(Command-Line Interface) 통해 원격제어하는 방법이다. 파일전송프로토콜(SFTP) 등을 이용할

developer-child.tistory.com

 

매번 SSH 접속 때마다 ip 치고 pw 치면 번거로운 일이다. 한 번에 접속해 보자.

Key 기반 인증 접속 방법은 Client 에 Private Key를 두고 Server에 Public Key 등록해서 인증하게 된다.

 

키 종류는 아래처럼 있지만 RSA 생성하면 된다.

1. RSA (Rivest-Shamir-Adleman)

2. ECDSA (Elliptic Curve Digital Signature Algorithm)

3. Ed25519

 

Client

우선 Key 생성해준다. RSA 기반으로 pem 옵션 추가해서 생성한다. pem 옵션 추가해 주는 이유는 후에 java jsch 패키지에 사용할 때 pem 옵션 추가 안 해주면 연결이 되지 않는다.

 

키생성

# power-shell 관리자로
ssh-keygen -t rsa -m PEM

 

생성하고 엔터 3번 치면 된다.

 

생성하고 "%userprofile%\.ssh" 경로로 들어가 보면 파일 2개가 새로 생성된 걸 볼 수 있다.

 

Public Key → Server 전송

id_rsa.pub 파일이 public key 인데 이 파일을 server 쪽으로 보내주면 된다.

# cmd
scp %userprofile%\.ssh\id_rsa.pub [server username]@[IPv4]:id_rsa.pub
# power-shell
scp $home\.ssh\id_rsa.pub [server username]@[IPv4]:id_rsa.pub

[server username]@[IPv4] 대신 앞에서 설정한 별칭 myRemote1 으로 입력해 줘도 된다.

 

 

명령어 입력하고 비밀번호 입력해 주면 된다.

power-shell

 

Server

이제 서버쪽 설정을 해주면 된다. 서버쪽 설정은 좀 있다.

 

Public key 확인

우선 전달받은 public key 는 %userprofile% 경로로 이동하면 보인다.

 

Authorized_keys 파일 생성

기본적으로 authorized_keys 파일은 생성되지 않는다. 만들어 줘야 되는데

 

특정 User profile 에서만 사용하는거면,

"$home\.ssh\authorized_keys" (ex:"C:\Users\User\.ssh\authorized_keys")  생성

관리자그룹 통해서 접속하는 거면,

“$env:ProgramData\ssh\administrators_authorized_keys”(ex:"C:\ProgramData\ssh\administrators_authorized_keys”) 생성

 

지금은 특정 User profile 에서 사용할 거기 때문에 아래처럼 생성한다.

# ssh 서비스 중지
$SSHDaemonSvc = Get-Service -Name ‘sshd’
Start-Service -Name $SSHDaemonSvc.Name
Stop-Service -Name $SSHDaemonSvc.Name

# 파일 생성
mkdir "$HOME\.ssh
$authorizedKeyFilePath = “$HOME\.ssh\authorized_keys”
New-Item $authorizedKeyFilePath

# 권한 설정
icacls.exe $authorizedKeyFilePath /remove “NT AUTHORITY\Authenticated Users”
icacls.exe $authorizedKeyFilePath /inheritance:r
Get-Acl “$env:ProgramData\ssh\ssh_host_dsa_key” | Set-Acl $authorizedKeyFilePath

 

sshd_config 비대칭키 인증 적용

다음에 sshd_config을 열어서 몇가지 설정을 변경해 준다.

notepad.exe $env:PROGRAMDATA\ssh\sshd_config

 

메모장에서 아래처럼 설정 변경해 준다.

# key 인증기반 활성화
RSAAuthentication yes
PubkeyAuthentication yes

# 비밀번호 인증기반 비활성화
PasswordAuthentication no
PermitEmptyPasswords no


# 관리자 그룹 키 인증 주석처리(맨 밑에 있음)
#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys


Public Key 등록

이제 Client 에서 받아온 "id_rsa.pub" 파일 내용을 "$home\.ssh\authorized_keys" 입력해준다.

메모장 열어서 id_rsa.pub 내용을 복붙 해준다. 아까 power-shell 관리자로 실행했기 때문에 관리자 메모장으로 열릴거임.

notepad.exe $authorizedKeyFilePath

 

 

막약 Power-shell 관리자로 실행해고 notepad 로 열었을 때 관리자 권한 팝업이 뜬다면 파일 권한에서 직접 권한을 해당 profile user를 추가해 주면 된다.

 

 

 

해당 profile 이름 치고 이름확인, 확인 누르면 된다.

 

다음에 다시 power-shell에서 Authorized_keys 파일을 열어보면 열릴 것이다.

 

 

 

Client → Server SSH 접속 테스트

접속했을 때 비밀번호 묻지 않고 바로 접속가능하다.

반응형
저작자표시 비영리 변경금지 (새창열림)

'[Window]' 카테고리의 다른 글

[Window] 특정 폴더나 파일 숨김 항목 보기 했는데도 안 보일 때  (0) 2025.01.15
SSH 접속 정보 - Config에 등록해서 사용하기  (0) 2024.07.22
SSH Server(Windows10) ↔ SSH Client(Windows10) 설정  (2) 2024.07.22
[PowerShell] 파워쉘 zip파일 압축 해제  (0) 2021.12.26
[CMD] 폴더 생성  (0) 2021.04.16
'[Window]' 카테고리의 다른 글
  • [Window] 특정 폴더나 파일 숨김 항목 보기 했는데도 안 보일 때
  • SSH 접속 정보 - Config에 등록해서 사용하기
  • SSH Server(Windows10) ↔ SSH Client(Windows10) 설정
  • [PowerShell] 파워쉘 zip파일 압축 해제
jkod
jkod
  • jkod
    개발린이
    jkod
  • 반응형
    • 분류 전체보기
      • [RPA]
      • [Python]
      • [VBA]
      • [JAVA]
      • [Window]
      • [MAC]
      • [기타]
        • 생활
  • 최근 글

  • 인기 글

  • hELLO· Designed By정상우.v4.10.2
jkod
SSH Server(Windows10) Key 기반 접속
상단으로

티스토리툴바