1. A에 OpenSSH서버 설치
검색창에 앱 및 기능을 검색합니다
선택적 기능에 들어갑니다
기능 추가를 클릭합니다
ssh를 검색한 후, OpenSSH 서버를 설치합니다
설치 완료
2. 서버 실행
관리자 권한으로 PowerShell을 실행해 줍니다.
아래의 명령어를 입력해서 서버를 실행, 종료할 수 있습니다.
start-service sshd stop-service sshd
3. 비대칭 키 인증 적용을 위한 서버 설정
비밀번호를 이용하면 보안에 취약할 수 있으므로 Public Key를 이용한 인증을 사용합니다.
관리자 권한으로 실행한 PowerShell에 아래와 같이 입력합니다.
notepad.exe $env:Programdata\ssh\sshd_config
이 파일에서 Ctrl+F를 이용해 아래의 항목들의 주석을 해제하고 값을 변경해줍니다.
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
그리고 아래 코드 블록을 찾아서 주석 처리해줍니다
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
4. 클라이언트(B)에서의 Public Key 발급
이제 위에 설정한 서버(A)의 클라이언트(B)가 될 pc에서 Public Key를 발급받겠습니다.
본인의 경우 클라이언(B)트 pc는 맥북입니다.
일단, 이미 발급한 Key가 있는지 확인하기 위해 터미널을 열어 아래의 명령를 입력합니다
cat ~/.ssh/id_rsa.pub
Key를 발급하는 것은 매우 쉽습니다. 아래와 같은 명령만 입력하면 됩니다.
ssh-keygen
아래 질문에는 Enter를 눌러 Default값으로 설정해 줍니다.
그리고 key를 사용할 때 입력할 비밀번호를 입력해줍니다. 그냥 Enter을 치면 비밀번호 없이 접속 가능합니다.
이렇게 발급이 끝났으면 다시 한번 아래 명령을 입력해 key값을 확인합니다.
cat ~/.ssh/id_rsa.pub
5. 클라이언트(B)의 key값을 서버에 저장
다시 서버(A)로 사용할 윈도우 컴퓨터, 위에서 봤을 때 A컴퓨터로 돌아옵니다.
관리자 권한으로 PowerShell을 켠 뒤, 아래 명령어를 입력해줍니다.
mkdir "$HOME\.ssh"
이제 클라이언트(B)의 key값을 저장할 파일을 만들겠습니다. 아래 명령어를 순서대로 입력해줍니다.
$authorizedKeyFilePath = "$HOME\.ssh\authorized_keys"
New-Item $authorizedKeyFilePath
notepad.exe $authorizedKeyFilePath
그런 다음, 클라이언트(B)에서 발급받은 key값을 모두 복사하여 이곳에 붙여 넣어줍니다.
이렇게 한 뒤 저장하면 서버(A)에 내 Public Key값이 저장되게 됩니다.
6. 인증 키를 저장한 파일의 권한 설정하기
똑같이 관리자 권한으로 실행한 PowerShell에 아래 명령을 순서대로 입력하면 됩니다.
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
이렇게 하면 경유 서버로 사용할 서버(A)의 설정이 모두 완료됩니다.