diff --git a/README.md b/README.md index 67f19a4..4ddc396 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,7 @@ ```powershell powershell -ExecutionPolicy Bypass -c "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; $t=\"$env:TEMP\install-tmux.ps1\"; iwr -useb 'https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-tmux.ps1' -OutFile $t; & $t" ``` + > πŸ’‘ **Windows OpenSSH Server μ°Έκ³ :** 슀크립트 가동 μ‹œ OpenSSH Server(sshd)κ°€ λ―Έμ„€μΉ˜λœ μƒνƒœλΌλ©΄ μžλ™μœΌλ‘œ 감지 및 λ°±κ·ΈλΌμš΄λ“œ μ„€μΉ˜ ν›„ κΈ°λ™ν•©λ‹ˆλ‹€. (κ΄€λ¦¬μž κΆŒν•œμ΄ ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.) * **superfile:** ```powershell @@ -202,7 +203,8 @@ tmux ls # 가동 쀑인 μ„Έμ…˜ λͺ©λ‘ 보기 | `Prefix ,` | ν˜„μž¬ 창의 이름 λ³€κ²½ | | `Prefix &` | ν˜„μž¬ ν™œμ„±ν™”λœ μ°½ μ™„μ „νžˆ λ‹«κΈ° | -> πŸ’‘ `install-tmux` μŠ€ν¬λ¦½νŠΈλŠ” μ΅œμ ν™”λœ μ»€μŠ€ν…€ `.tmux.conf` νŒŒμΌμ„ μ‚¬μš©μž ν™ˆ 디렉토리에 λ°°ν¬ν•©λ‹ˆλ‹€. (κΈ°μ‘΄ μ„€μ • 파일이 μžˆλ‹€λ©΄ `.tmux.conf.bak.*`둜 μžλ™ λ°±μ—…λ©λ‹ˆλ‹€.) +> πŸ’‘ `install-tmux` μŠ€ν¬λ¦½νŠΈλŠ” μ΅œμ ν™”λœ μ»€μŠ€ν…€ `.tmux.conf` νŒŒμΌμ„ μ‚¬μš©μž ν™ˆ 디렉토리에 λ°°ν¬ν•©λ‹ˆλ‹€. (κΈ°μ‘΄ μ„€μ • 파일이 μžˆλ‹€λ©΄ `.tmux.conf.bak.*`둜 μžλ™ λ°±μ—…λ©λ‹ˆλ‹€.) +> πŸ’‘ **Windows (PowerShell) μ°Έκ³ :** μœˆλ„μš° ν™˜κ²½μ—μ„œ μ‹€ν–‰ν•  경우, OpenSSH Server μ„œλΉ„μŠ€(`sshd`)κ°€ μž‘λ™ν•˜μ§€ μ•Šκ±°λ‚˜ 없을 μ‹œ Windows 선택적 κΈ°λŠ₯(Optional Capability)을 ν†΅ν•˜μ—¬ 무인 μ„€μΉ˜ 및 κ΅¬λ™κΉŒμ§€ μ™„μ „ μžλ™ μ§€μ›ν•©λ‹ˆλ‹€. #### 1.2. superfile μˆ˜λ €ν•˜κ³  λ―Έλ €ν•œ λ””μžμΈμ„ μ„ μ‚¬ν•˜λŠ” κ³ κΈ°λŠ₯ 터미널 파일 κ΄€λ¦¬μžμž…λ‹ˆλ‹€. diff --git a/install-tmux.ps1 b/install-tmux.ps1 index c32c4ec..be3c7ac 100644 --- a/install-tmux.ps1 +++ b/install-tmux.ps1 @@ -47,6 +47,36 @@ function ErrExit { Write-Host "[ERROR] $args" -ForegroundColor Red; exit 1 } # ──────────────────────────────────────────── $ConfFile = Join-Path $env:USERPROFILE '.tmux.conf' +# ──────────────────────────────────────────── +# Step 0: Ensure OpenSSH Server +# ──────────────────────────────────────────── +Info "OpenSSH Server μ„€μΉ˜ μ—¬λΆ€ 확인 쀑..." +$sshService = Get-Service -Name "sshd" -ErrorAction SilentlyContinue + +if (-not $sshService) { + Info "OpenSSH Serverκ°€ μ„€μΉ˜λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ„€μΉ˜λ₯Ό μ‹œλ„ν•©λ‹ˆλ‹€..." + + # OpenSSH Server κΈ°λŠ₯ μΆ”κ°€ (κ΄€λ¦¬μž κΆŒν•œ ν•„μš”) + try { + $capability = Get-WindowsCapability -Online -Name "OpenSSH.Server~~~~0.0.1.0" + if ($capability.State -ne "Installed") { + Info "Windows 선택적 κΈ°λŠ₯μ—μ„œ OpenSSH Serverλ₯Ό μ„€μΉ˜ν•˜λŠ” 쀑..." + Add-WindowsCapability -Online -Name "OpenSSH.Server~~~~0.0.1.0" > $null + Success "OpenSSH Server κΈ°λŠ₯이 μ„±κ³΅μ μœΌλ‘œ μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€." + } + + # sshd μ„œλΉ„μŠ€ μ‹œμž‘ 및 μžλ™ μ‹€ν–‰ μ„€μ • + Set-Service -Name "sshd" -StartupType Automatic + Start-Service -Name "sshd" + Success "OpenSSH Server(sshd) μ„œλΉ„μŠ€κ°€ μ‹œμž‘λ˜μ—ˆμœΌλ©° μžλ™ μ‹€ν–‰μœΌλ‘œ μ„€μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€." + } catch { + Warn "OpenSSH Server μžλ™ μ„€μΉ˜μ— μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€: $_" + Warn "이 κΈ°λŠ₯은 'κ΄€λ¦¬μž κΆŒν•œ'이 ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€." + } +} else { + Success "OpenSSH Serverκ°€ 이미 μ„€μΉ˜λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€." +} + # ──────────────────────────────────────────── # Step 1: Install tmux # ────────────────────────────────────────────