https://acredev.tistory.com/67
[OpenSSH] Windows용 OpenSSH 수동 설치를 통한 SSH / SFTP 서버 구축
0. 개요 Windows 10 버전 / Windows Server 2019 이후부터 자체 OpenSSH를 지원함에 따라 서드파티 프로그램을 사용하지 않고서 SSH 서버 구축이 가능하다. 이를 통해, Windows 환경에 OpenSSH를 수동 설치하여 SFT
acredev.tistory.com
이 글에서 open ssh 설치 너무 잘 되어 있지만
약간의 오류를 잡아야 해서 다시 적게 되었다.
위의 내용 글쓴이가 너무너무너무 잘 정리 되어 있기 때문에
위에 글로 해결이 가능하면 위에글로 봐주시길 바랍니다.
open SSh
인공지능과 딥러닝을 하게 되면
컴퓨터는 집에 이쏙 간단한 노트북을 가지고 카페에서 원격으로 하고 싶지 않은가??
이러한 것을 하기 위해서 open ssh를 해 보기로 했다.
우선 우리는
위의 그림과 같이
선택적 기능을 통해서 설치 하는 것을 안할것이다.
와... 말하겠지만 어느 순간 부터 오류가 걸렸는데
이 원인을 확인하기 까지 약 3개월 소비 되었다.
위의 참조 홈페이지에서 수동으로 설치패서 해결 할떄까지 아무것도 못 썼다.
수동 다운로드
https://github.com/PowerShell/Win32-OpenSSH/releases
Releases · PowerShell/Win32-OpenSSH
Win32 port of OpenSSH. Contribute to PowerShell/Win32-OpenSSH development by creating an account on GitHub.
github.com
이 글은 윈도우 기반으로 ssh 접속 이기 때문에
- Windows 32-bit 환경 : OpenSSH-Win32.zip
- Windows 64-bit 환경 : OpenSSH-Win64.zip
다운 받으면 된다.
시스템 환경 변수 편집에 들어가 주자
환경 변수에 들어가면
Path, path, PATH 이렇게 되어 있는데
여기에 들어가면 아래 그림처럼 되어 있다.
C:\WINDOWS\System32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
이것을 위와 같이 추가 해주면 된다.
인증용 Windows 로컬 사용자 계정생성
windows power shell에서 관리자 권한으로 실행을 하면 된다.
PS C:\Windows\system32> $PW = Read-Host -AsSecureString
[계정 비밀번호 입력]
PS C:\Windows\system32> New-LocalUser [계정명] -Password $PW
Name Enabled Description
---- ------- -----------
[계정명] True
이렇게 나옴을 확인 할수 있다.
여기서 **** 은 나의 컴퓨터 비번이다. (보안을 위해서 비번을 설정 하는 것을 추천한다)
Openssh 설치
C:\OpenSSH-Win64
이 위치로 압축 해제를 하면 된다.
아니면 압축 해제 한후 c최상단에 옮겨 두면 된다.
경로는 크게 상관없으나
OpenSSH 설치 구성 파일들을 위치시킨 경로는 C:\OpenSSH-Win64 이다.
다시 power shell 관리자 권한으로 실행해보자
Set-ExecutionPolicy Unrestricted
y를 눌러서 진행을 하면 된다.
Unrestricted로 잘 변경되었는지 확인한다.
./setx PATH "$env:path;C:\OpenSSH-Win64" -m
cd C:\OpenSSH-Win64
OpenSSH 설치 파일들이 위치한 경로로 이동한다.
지금 까지 한거 정리 한것들
다시 시작
./install-sshd.ps1
이러면 제대로 된것이다.
간혹 가다가 보안경고가 뜬다고 한다
https://acredev.tistory.com/67
[OpenSSH] Windows용 OpenSSH 수동 설치를 통한 SSH / SFTP 서버 구축
0. 개요 Windows 10 버전 / Windows Server 2019 이후부터 자체 OpenSSH를 지원함에 따라 서드파티 프로그램을 사용하지 않고서 SSH 서버 구축이 가능하다. 이를 통해, Windows 환경에 OpenSSH를 수동 설치하여 SFT
acredev.tistory.com
여기 참고해보면
PS C:\OpenSSH-Win64> ./install-sshd.ps1
보안 경고
신뢰하는 스크립트만 실행하십시오. 인터넷의 스크립트는 유용할 수 있지만 사용자 컴퓨터를 손상시킬 수도 있습니다.
스크립트를 신뢰하는 경우 Unblock-File cmdlet을 사용하면 이 경고 메시지 없이 스크립트를 실행할 수 있습니다.
C:\OpenSSH-Win64\install-sshd.ps1을(를) 실행하시겠습니까?
[D] 실행 안 함(D) [R] 한 번 실행(R) [S] 일시 중단(S) [?] 도움말 (기본값은 "D"): R
보안 경고
신뢰하는 스크립트만 실행하십시오. 인터넷의 스크립트는 유용할 수 있지만 사용자 컴퓨터를 손상시킬 수도 있습니다.
스크립트를 신뢰하는 경우 Unblock-File cmdlet을 사용하면 이 경고 메시지 없이 스크립트를 실행할 수 있습니다.
C:\OpenSSH-Win64\OpenSSHUtils.psm1을(를) 실행하시겠습니까?
[D] 실행 안 함(D) [R] 한 번 실행(R) [S] 일시 중단(S) [?] 도움말 (기본값은 "D"): R
[*] C:\OpenSSH-Win64\moduli
Inheritance is removed from 'C:\OpenSSH-Win64\moduli'.
'NT AUTHORITY\Authenticated Users' now has Read access to 'C:\OpenSSH-Win64\moduli'.
'BUILTIN\Users' now has Read access to 'C:\OpenSSH-Win64\moduli'.
Repaired permissions
[SC] SetServiceObjectSecurity 성공
[SC] ChangeServiceConfig2 성공
[SC] ChangeServiceConfig2 성공
sshd and ssh-agent services successfully installed
Updated Machine PATH to include OpenSSH directory, restart/re-login required to take effect globally
./install-sshd.ps1 명령어를 통해 설치 스크립트를 실행시키자. 스크립트 실행 보안설정에 의해, 스크립트를 정말 실행할 것인지 물어보면 R 을 입력해 진행하면 된다.
이렇게 하라고 나와있따.
Get-Service sshd | format-list -property *
OpenSSH 서버의 Windows 서비스 명칭은 sshd 이다.
Get-Service 명령어를 통해 Windows 서비스에 sshd 서비스가 등록되었는지 확인해보자
방화벽 설정
notepad C:\ProgramData\ssh\sshd_config
나의 경우
이것을 했을때
파일이 없는 것으로 떴었다.
그럼 어떻게 해야 할까???
그러면 sshd 를 한번 실행하고 오면 config 파일이 생성이 되어 있으므로
한번 실행하고 오자
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
Get-Service sshd | format-list -property *
이렇게 잘 나오고 있으면
다시 Stop 을 시켜주면 된다.
Stop-Service sshd
Get-Service sshd | format-list -property *
다시 멈춘것을 확인 할수 있다.
여기서 Status : Stopped 된것을 확인 해야 한다.
포트 설정
notepad C:\ProgramData\ssh\sshd_config
powershell에 이것을 입력하면 메모장이 켜진다.
보통은 포트22를 기본 으로 하기 떄문에 이렇게 하는데
나는 이미 포트를 1001
내부포트 외부 포트를 1001로 뚫어 두었기때문에 1001로 해야한다.
메모장에 포트 1001 로 하고 저장을 하면 된다.(22로 해도 된다)
방화벽 규칙 추가
New-NetFirewallRule -Name "sshd1001" -DisplayName 'OpenSSH Server 1001' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 1001
이런 결과가 나오면 방화벽 규칙을 추가한것 이다.
다시 실행 시켜 보자
Restart-Service sshd
Get-Service sshd | format-list -property *
Status : Running이 된것으로 확인이 잘 되고 있따
netstat -an | findstr :1001
보통 이렇게 2개가 뚜면 안되고 하나 나오는데
둘 중에 하나만 나오면 지금 잘 되고 있는 것이다.
테스트 연결
ssh localhost -p 1001
여기서 오류가 걸린다면 (나는 오류걸렸다. ㅠㅠ 스크린샷 못 찍음)
여기서 powershell 관리자 권한을 껐다가 다시 켜라
ssh localhost -p 1001
으로 우리가 알고 있는 계정 비번을 통해서 들어가면
이렇게 연결 됨을 확인 할 수 있따.
Set-Service -Name sshd -StartupType Automatic
Set-Service -Name sshd -StartupType Automatic 명령은 SSH 서버 서비스의 시작 유형을 "자동"으로 설정하자.
자 이제 끝났다
외부에서 ssh 접속 확인
외부 컴에서 putty 로 접속 하는것을 확인 해보자
접속 확인 와료
이후에 시간이 가능하면 vscode로 ssh 연결 하는것을 게시 하겠습니다.