기술공부/개발_코드

🚀 Windows에서 OpenSSH를 활용한 원격 접속 설정 및 문제 해결 가이드

넹넹선생님 2025. 2. 18. 17:45
728x90
반응형

🔍 개요

Windows 환경에서 OpenSSH를 활용하여 로컬(A)에서 원격(B)으로 SSH 접속을 설정하는 방법을 정리했습니다.
또한, SSH 접속 시 발생할 수 있는 문제와 해결 방법도 함께 다룹니다.


🛠 1. OpenSSH 설치 및 설정

📌 1.1 B 컴퓨터(OpenSSH 서버) 설치

  1. OpenSSH 다운로드 및 설치
    • OpenSSH 공식 릴리즈에서 최신 버전을 다운로드
    • 압축을 E:\openSSH-Win64 폴더에 풀기
    • PowerShell(관리자 권한)에서 설치 스크립트 실행:
      cd E:\openSSH-Win64
      powershell -ExecutionPolicy Bypass -File install-sshd.ps1
      
  2. SSH 서비스 실행 및 자동 시작 설정
  3. Start-Service sshd Set-Service -Name sshd -StartupType Automatic
  4. 방화벽에서 SSH 포트 허용 (기본 22번 포트)
  5. New-NetFirewallRule -Name sshd -DisplayName "OpenSSH Server (sshd)" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

📌 2. SSH 포트 변경 (예: 2222번)

보안을 강화하기 위해 기본 포트(22) 대신 2222번 포트를 사용하도록 변경합니다.

  1. SSH 설정 파일(sshd_config) 수정아래 내용을 추가 또는 수정
  2. Port 2222 PermitRootLogin yes PasswordAuthentication yes PubkeyAuthentication yes SyslogFacility LOCAL0 LogLevel DEBUG3 Subsystem sftp sftp-server.exe
  3. notepad "C:\ProgramData\ssh\sshd_config"
  4. SSH 서비스 재시작
  5. Restart-Service sshd
  6. 방화벽에서 새 포트 허용
  7. New-NetFirewallRule -Name sshd -DisplayName "OpenSSH Server (sshd)" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 2222

📌 3. A에서 B로 SSH 접속 설정

  1. A에서 SSH 키 생성 (선택 사항)
    • id_rsa와 id_rsa.pub 파일이 생성됨
  2. ssh-keygen -t rsa -b 4096
  3. B 컴퓨터에 공개 키 등록
  4. scp C:\Users\사용자명\.ssh\id_rsa.pub B사용자@B의IP:C:\Users\B사용자\.ssh\authorized_keys
  5. A에서 SSH 접속 테스트
  6. ssh B사용자@B의IP -p 2222
  7. 매번 포트를 입력하지 않도록 SSH 설정내용 추가이제 간단히 ssh B 명령어로 접속 가능!
  8. Host B HostName B의_IP User B사용자 Port 2222 IdentityFile C:\Users\사용자명\.ssh\id_rsa
  9. notepad C:\Users\사용자명\.ssh\config

🔧 4. SSH 접속 오류 해결

SSH 연결이 되지 않는 경우, 다음 문제들을 확인하세요.

🚨 4.1 SSH 포트가 열려 있는지 확인

netstat -an | findstr 2222
  • LISTENING이 표시되지 않으면 SSH가 실행되지 않은 것 → Restart-Service sshd 실행

🚨 4.2 SSH 로그 확인

Get-Content "C:\ProgramData\ssh\logs\sshd.log" -Tail 50
  • 로그 파일이 없으면 sshd_config에 LogLevel DEBUG3 추가 후 SSH 서비스 재시작

🚨 4.3 SSH 직접 실행하여 문제 확인

E:\openSSH-Win64\sshd.exe -D -d -p 2222
  • 실행 결과에서 오류 메시지를 확인하고 수정

🚨 4.4 방화벽 문제 해결

SSH가 차단되었을 가능성이 있으므로 방화벽 설정을 다시 추가

New-NetFirewallRule -Name sshd -DisplayName "OpenSSH Server (sshd)" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 2222

🚨 4.5 Windows 서비스 권한 문제 해결

  1. SSH 서비스가 LocalSystem으로 실행되고 있는지 확인
    Get-WmiObject Win32_Service | Where-Object { $_.Name -eq "sshd" } | Select-Object Name, StartName
    
  2. SSH 서비스 실행 계정을 변경
    sc.exe config sshd obj= LocalSystem
    Restart-Service sshd
    

🎯 5. 최종 점검 체크리스트

B에서 SSH 서비스 실행 (Get-Service sshd 확인, 실행 중인지 체크)
SSH 포트(2222)가 열려 있는지 확인 (netstat -an | findstr 2222)
방화벽에서 2222 포트가 허용되었는지 확인 (Get-NetFirewallRule -Name sshd)
SSH 설정이 올바르게 적용되었는지 확인 (E:\openSSH-Win64\sshd.exe -T | findstr /I "port")
A에서 B로 SSH 접속 가능 (ssh B사용자@B의IP -p 2222)

🚀 이제 원격 SSH 접속이 정상적으로 실행될 것입니다! 🚀
추가 오류가 발생하면 SSH 로그(sshd.log)를 확인하고 문제를 해결하세요.


🔗 결론

이 가이드를 따르면 Windows에서 OpenSSH를 설정하고, SSH 원격 접속을 안정적으로 사용할 수 있습니다.
만약 SSH 접속이 안 될 경우 포트 상태, 방화벽 설정, SSH 로그 확인, 직접 실행 테스트를 진행하면 대부분의 문제를 해결할 수 있습니다.

💡 다른 Windows 환경에서 SSH 설정을 해야 한다면 이 가이드를 참고하세요! 😊 🚀

728x90
반응형