🔍 개요
Windows 환경에서 OpenSSH를 활용하여 로컬(A)에서 원격(B)으로 SSH 접속을 설정하는 방법을 정리했습니다.
또한, SSH 접속 시 발생할 수 있는 문제와 해결 방법도 함께 다룹니다.
🛠 1. OpenSSH 설치 및 설정
📌 1.1 B 컴퓨터(OpenSSH 서버) 설치
- OpenSSH 다운로드 및 설치
- OpenSSH 공식 릴리즈에서 최신 버전을 다운로드
- 압축을 E:\openSSH-Win64 폴더에 풀기
- PowerShell(관리자 권한)에서 설치 스크립트 실행:
cd E:\openSSH-Win64 powershell -ExecutionPolicy Bypass -File install-sshd.ps1
- SSH 서비스 실행 및 자동 시작 설정
- Start-Service sshd Set-Service -Name sshd -StartupType Automatic
- 방화벽에서 SSH 포트 허용 (기본 22번 포트)
- New-NetFirewallRule -Name sshd -DisplayName "OpenSSH Server (sshd)" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
📌 2. SSH 포트 변경 (예: 2222번)
보안을 강화하기 위해 기본 포트(22) 대신 2222번 포트를 사용하도록 변경합니다.
- SSH 설정 파일(sshd_config) 수정아래 내용을 추가 또는 수정
- Port 2222 PermitRootLogin yes PasswordAuthentication yes PubkeyAuthentication yes SyslogFacility LOCAL0 LogLevel DEBUG3 Subsystem sftp sftp-server.exe
- notepad "C:\ProgramData\ssh\sshd_config"
- SSH 서비스 재시작
- Restart-Service sshd
- 방화벽에서 새 포트 허용
- New-NetFirewallRule -Name sshd -DisplayName "OpenSSH Server (sshd)" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 2222
📌 3. A에서 B로 SSH 접속 설정
- A에서 SSH 키 생성 (선택 사항)
- id_rsa와 id_rsa.pub 파일이 생성됨
- ssh-keygen -t rsa -b 4096
- B 컴퓨터에 공개 키 등록
- scp C:\Users\사용자명\.ssh\id_rsa.pub B사용자@B의IP:C:\Users\B사용자\.ssh\authorized_keys
- A에서 SSH 접속 테스트
- ssh B사용자@B의IP -p 2222
- 매번 포트를 입력하지 않도록 SSH 설정내용 추가이제 간단히 ssh B 명령어로 접속 가능!
- Host B HostName B의_IP User B사용자 Port 2222 IdentityFile C:\Users\사용자명\.ssh\id_rsa
- 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 서비스 권한 문제 해결
- SSH 서비스가 LocalSystem으로 실행되고 있는지 확인
Get-WmiObject Win32_Service | Where-Object { $_.Name -eq "sshd" } | Select-Object Name, StartName
- 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 설정을 해야 한다면 이 가이드를 참고하세요! 😊 🚀
'기술공부 > 개발_코드' 카테고리의 다른 글
배치처리의 장점 (0) | 2025.02.25 |
---|---|
배치처리 vs. 개별처리 (0) | 2025.02.25 |
그래프에서 끊어진 데이터를 이어주는 방법 (0) | 2024.08.13 |
가상환경 구축 후 패키지 깔기 (0) | 2024.08.06 |
엑셀 function: 표에서 원하는 값을 하이라이트하기 (0) | 2024.07.29 |