이전글
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 으로 입력해 줘도 된다.
명령어 입력하고 비밀번호 입력해 주면 된다.
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 |