顯示具有 openssh server 標籤的文章。 顯示所有文章
顯示具有 openssh server 標籤的文章。 顯示所有文章

2024年11月7日 星期四

Windows 開發筆記 - 將 Windows 11 筆電作業系統重置/還原至乾淨的環境與建立本地帳號密碼登入方式

由於 Windows 筆電常拿來實驗軟體,環境裝得有點亂,把它重置一下,筆記一下流程,哪天應該會用到:

系統 -> 復原 -> 重設此電腦 -> 本機重新安裝 -> 變更設定 -> 是否清除資料 (是) -> 按下重設就開始進行






接著會花一點時間,例如 20-30 分鐘後,筆電重開機,此台筆電就進入顯示 "正在重設這部電腦 10%" ,依筆電規格運算時間不同,在這台大概還要運行 40 分鐘:



手上的筆電,還會問你要不要保留筆電相關 keys ,通常是推薦選 ESC 略過清除:

A configuration change was requested to clear this computer's TPM (Trusted Platform Module).

WARNING: Clearing erases information stored on the TPM.
You will lose all created keys and access to data encrypted by these keys.
Press [F9] to confirm, ESC to reject

The system will restart.

詢問 Claude.ai 提供的資訊:

這個訊息是關於 TPM (Trusted Platform Module,信賴平台模組) 的重要警告。讓我解釋一下:

TPM 是電腦主機板上的一個安全晶片,主要用來:
1. 存儲加密金鑰
2. 保護 Windows Hello 的生物識別資料(如指紋)
3. 保護 BitLocker 硬碟加密的金鑰
4. 確保開機過程的安全性

這個警告在告訴你:
- 系統正在請求清除 TPM 中的資料
- 如果你按下 F9 確認清除,你將會失去:
  - TPM 中儲存的所有加密金鑰
  - 使用這些金鑰加密的資料的存取權限
- 按 ESC 可以取消這個動作

建議:
1. 如果你正在重置電腦並打算重新開始使用,按 F9 沒有問題
2. 如果你的電腦有使用 BitLocker 加密,請確保你已經備份了重要資料
3. 如果你不確定要不要清除,建議先按 ESC,等確認沒有重要資料需要保留後再進行

清除後,系統會重新啟動,而 TPM 會重新初始化以供新的 Windows 安裝使用。

接著,就像筆電剛買回來初次啟動一樣,開始被問要怎樣登入系統。印象中只要一開始設定好連外網路後,由於 Windows 也都在推廣自家帳號跟雲端服務,選個人使用會一直卡在被要求註冊一個帳號或登入一個微軟帳號,這時可以使用 "為公司或學校設定",在這種組織流程中可以像以前 Windows 7 等等,直接創建本機帳號:

為公司或學校設定 -> 登入選項 -> 改為加入網域 -> 輸入






接著進入系統後,大概會繼續做:
  • 系統安全更新 -> 升級到最新
  • 系統 -> 遠端桌面 -> 啟用
  • 系統 -> 電源和電池 
    • -> 電源
      • -> 螢幕與睡眠 -> 插電時,在下列時間後讓裝置進入睡眠狀態:永不
      • -> 電源模式:最佳效能
  • 關閉 筆電關閉就進入休眠
    • Ctrl + R -> 輸入 control panel
      • -> 控制台 -> 硬體與音效 -> 電源選項 -> 選擇蓋上螢幕時的行為
        • 當我關閉筆記電腦螢幕時:一般電源 -> 不進行動做
  • 開始 選單 -> Microsoft Store
    • -> Python 3.12
    • -> Visual Studio Code
    • -> Brave Browser
    • -> Mozilla Firefox
  • 啟用系統內建 OpenSSH Server
    • Ctrl+R -> 輸入 services.msc -> 找尋 OpenSSH 伺服器 
             -> 按 右鍵 選 啟用
             -> 按 右鍵 選 內容 -> 啟動類型 -> 自動
    • 防火牆設定 -> Ctrl+R -> wf.msc -> 輸入規則 -> OpenSSH SSH Server (sshd) 
             -> 進階 -> 設定檔 -> 勾選 網域/私人/公用
  • 啟用 telnet 工具
    • 控制台 -> 程式集 -> 程式和功能 -> 開啟或關閉 Windows 功能 -> Telnet Client
  • 下載 CygWin 安裝更多工具
    • https://www.cygwin.com/install.html
      • 或是用 Windows 11 系統內建的 curl 來下載
        • C:\Users\User\Downloads>curl https://www.cygwin.com/setup-x86_64.exe > setup-x86_64.exe
    • 安裝 curl, wget, vim, git, cmake, clang, autossh 工具
    • 之後透過 command 遠端登入 Windows 筆電時,可以在靠指令切換到 CygWin 的環境:
      • C:\Users\User>C:\cygwin64\Cygwin.bat 

        User@PC ~
        $

        User@PC ~
        $ pwd
        /cygdrive/c/Users/User
  • 使用 winget 指令:learn.microsoft.com/zh-tw/windows/package-manager/winget/
    • 太久沒用 Windows ,沒想到 Microsoft 有推出自家牌 winget 套件管理工具,直接用他安裝工具
    • 安裝完記得要重新登入才會更新工具搜尋環境,但是,有些工具裝完的確找不到,需自行更新 PATH 資訊
    • 範例一:安裝 wget 指令
      • C:\Users\User>wget
      • 'wget' 不是內部或外部命令、可執行的程式或批次檔。
      • C:\Users\User>winget install wget
      • 找到 Wget [JernejSimoncic.Wget] 版本 1.21.4
      • 此應用程式已由其擁有者授權給您。
      • Microsoft 不負任何責任,也不會授與協力廠商封裝的任何授權。
      • 正在下載 https://eternallybored.org/misc/wget/1.21.4/64/wget.exe
      •   ██████████████████████████████  6.71 MB / 6.71 MB
      • 已成功驗證安裝程式雜湊
      • 正在啟動套件安裝...
      • 新增的命令列別名: "wget"
      • 已修改路徑環境變數;重新啟動命令介面以使用新值。
      • 已成功安裝
    • 範例二:安裝 git vim
      • C:\Users\User>winget install git vim
      • 找到多個符合輸入條件的套件。請精煉輸入。
      • 名稱   識別碼        來源
      • ----------------------------
      • My Git 9NLVK2SL2SSP  msstore
      • Git    Git.Git       winget
      • Git    Microsoft.Git winget
      • 找到多個套件: git
      • 找到多個符合輸入條件的套件。請精煉輸入。
      • 名稱            識別碼          來源
      • ---------------------------------------
      • Vim Cheat Sheet 9WZDNCRDMCWR    msstore
      • Vim             vim.vim         winget
      • Vim             vim.vim.nightly winget
      • 找到多個套件: vim
    • 大概就安裝這些工具:
      • C:\Users\User>winget install wget vim.vim Microsoft.Git GnuWin32.Grep CoreyButler.NVMforWindows Docker.DockerDesktop
        • 其中 vim 預設還沒更新到 PATH 環境,需要去找他出來用 "C:\Program Files\Vim\vim91\vim.exe" ,對應的還有 "C:\Program Files (x86)\GnuWin32\bin\grep.exe" 等等
如此,又變成可以遠端進去處理、測試的 Windows 節點了! 像是 Python Windows 的實驗環境就可以用:

C:\Users\User\Downloads>python -m venv venv  
C:\Users\User\Downloads>.\venv\Scripts\activate
C:\Users\User\Downloads>pip install grip 

2023年8月31日 星期四

[macOS] 從 Macbook 遠端登入 Windows 筆電並使用 PowerShell 工作環境 @ macOS 13.2.1

由於想善用 Windows 筆電的資源(算力),先來試試看能不能打通 macOS command line 遠端登入進 Windows 11 筆電。查了一下資料,看來真的也有人有這種需求 XD

原理:
  1. Windows 11 安裝 OpenSSH Server
  2. macOS 安裝 PowerShell Core 資源 (非必要)
其中一還滿常見,二就有點怕怕,所幸資源算是微軟提供(?),有興趣可以裝 pkg 檔案,裝完在 macos command line 用 pwsh 指令就切換到 PowerShell 工作環境,目前只需做 (1) 就能完成需求,以下是在 Windows 11 筆電下運行指令,建議在上述微軟官方文件上複製使用,在此純做筆記:

PS C:\Users\user> Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

Name  : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

PS C:\Users\user> ssh -V
OpenSSH_for_Windows_8.6p1, LibreSSL 3.4.3

PS C:\Users\user> Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Path          :
Online        : True
RestartNeeded : False

PS C:\Users\user> Start-Service sshd
PS C:\Users\user> Set-Service -Name sshd -StartupType 'Automatic'
PS C:\Users\user> if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
>>     Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
>>     New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
>> } else {
>>     Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
>> }
Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists.

PS C:\Users\user> ssh localhost
user@localhost's password:

如此筆電重啟後,也會自動啟動 OpenSSH Server 。而 macOS 要遠端進去一樣把它當成 linux server 即可,靠 ssh 加上帳密遠端登入。

另外,常會使用 ping 來查看機器健康情況,而 Windows 11 默認關閉(也是滿好的資安規劃),在此要人工開啟:

系統 -> 隱私權與安全性 -> Windows 安全性 -> 防火牆與網路保護 -> 進階設定 -> 輸入規則 ->  核心網路診斷 - ICMP 回應要求 -> 啟動


可以自行依照需求開啟全部 ICMP 回應或部分情境。 

最後,莫忘筆電的電源節源設計,預設應該是 5分鐘就會進入休眠,可以把它調整成插電就永不進入休眠,以及要衝刺算力也可以調整電源策略。