通過 SSH 安裝 Arch Linux - Arch Linux 中文维基

跳至內容

# 通過 SSH 安裝 Arch Linux

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Install Arch Linux via SSH，最近一次同步於 2023-05-27，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

本文介紹如何通過 SSH 連接遠程安裝 Arch。如果計算機位於遠程位置或者希望在安裝 Arch 時使用 SSH 客戶端的複製/粘貼功能，則可以考慮這種方法。

## 在遠程（目標）計算機上

注意：這些步驟需要物理訪問計算機。如果計算機位於其他位置，則可能需要與其他人協調。

通過 Live CD/USB 鏡像啟動計算機進入 Live Arch 環境：用戶將以 root 用戶身份登錄。

這時，按照安裝指南#連接到網際網路在目標計算機上設置網絡。

為 SSH 連接設置 root 密碼，因為 Arch 中 root 的默認密碼為空：

    # passwd

確認在 `/etc/ssh/sshd_config` 中設置了 `PermitRootLogin yes`。如果沒有，請設置並重新加載OpenSSH 守護進程 `sshd.service` 使更改生效。

注意：如果目標計算機在 NAT 路由器後面，並且需要從外部訪問， 則需要將 SSH 埠（默認為 22）轉發到目標計算機的 LAN IP 地址。也可以設置一個到本地（客戶端）機器的反向 SSH 隧道，並通過它連接，請參見 ssh(1) 的 `-R` 標誌。

## 在本地計算機上

在本地計算機上，使用以下命令通過 SSH 連接到目標計算機：

    $ ssh -o StrictHostKeyChecking=no -o "UserKnownHostsFile /dev/null" root@目标计算机的_IP_地址

注意：`-o StrictHostKeyChecking=no -o "UserKnownHostsFile /dev/null"` 選項將阻止驗證 Live 環境的 SSH 主機密鑰並將其寫入到 `~/.ssh/known_hosts`。如果您以前連接過這一 IP 地址，這將避免 `REMOTE HOST IDENTIFICATION HAS CHANGED` 警告。

從這裡可以看到 Live 環境的歡迎信息，並且能夠像坐在物理鍵盤旁一樣管理目標計算機。此時，如果只想安裝 Arch，請遵循安裝指南。如果要編輯現有的已損壞的 Linux 安裝，參見從現有 Linux 發行版安裝 Arch Linux。

提示：考慮在目標計算機上使用 GNU Screen 或 tmux（在 Live 環境中兩者都可用）。這樣，如果斷開連接，還可以重新連接到多路復用器的會話。

## 在無頭伺服器上安裝

注意：這些步驟需要物理訪問遠程計算機。需要有人插入安裝介質並啟動伺服器。

本節介紹在沒有鍵盤、滑鼠和顯示器的無頭伺服器上安裝 Arch Linux。這種方法使用一個帶有 cloud-init NoCloud 配置的額外驅動器來自動配置 OpenSSH 授權密鑰和可選的 iwd 連接。

### 準備 cloud-init 配置文件

需要兩個 cloud-init 配置文件：`meta-data` 和 `user-data`。

`meta-data` 文件可以為空：

    $ printf "" > meta-data

`user-data` 將包含相關配置：

    user-data

    #cloud-config
    users:
      - name: root
        ssh_authorized_keys:
          - ssh-ed25519 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
          - ssh-ed25519 YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

將 `ssh-ed25519 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX` 替換為 SSH 公鑰。要添加多個密鑰，只需重複上述語句。

要自動連接到 Wi-Fi 網絡，請使用 `write_files:` 語句在正確的目錄中創建 iwd 網絡配置文件。例如：

    user-data

    #cloud-config
    users:
      - name: root
        ssh_authorized_keys:
          - ssh-ed25519 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
          - ssh-ed25519 YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

    write_files:
    - content: |
        [Security]
        PreSharedKey=aafb192ce2da24d8c7805c956136f45dd612103f086034c402ed266355297295
      path: /var/lib/iwd/spaceship.psk

    runcmd:
    - systemctl restart iwd.service

創建了這兩個文件之後，需要將其放置在一個標籤為 `CIDATA` 的 ISO 9660 或 FAT 卷的驅動器上。

### 使用額外的 FAT 格式驅動器

使用 FAT 格式的驅動器。將 `meta-data` 和 `user-data` 複製到驅動器並將文件系統的 LABEL 更改為 `CIDATA`。

除了包含官方 ISO 的驅動器外，還需要將這個驅動器連接到無頭計算機上。

### 使用額外的 ISO

使用 libisoburn包 中的 xorriso 創建一個 `cloud-init.iso` 文件：

    $ xorrisofs -output cloud-init.iso -volid CIDATA -joliet -rational-rock meta-data user-data

將 cloud-init 數據介質刻錄到光碟，如果部署選項允許的話，按原樣使用 ISO。

### 使用單個 U 盤

如果將安裝映像寫入到了 U 盤之類的驅動器，並且驅動器上有足夠的空間，就可以創建一個額外的分區來存儲 cloud-init 數據。

安裝 dosfstools包、mtools包 和 libisoburn包。

首先創建一個 LABEL 設置為 `CIDATA` 的 FAT 鏡像：

    $ mkfs.fat -C -n CIDATA cloud-init.img 2048

將 `meta-data` 和 `user-data` 文件複製到其根目錄：

    $ mcopy -i cloud-init.img meta-data user-data ::

重新打包官方 ISO，將 FAT 鏡像作為第三個分區包括進來：

    $ xorriso -indev archlinux-version-x86_64.iso -outdev archlinux-version-x86_64-with-cidata.iso -append_partition 3 0x0c cloud-init.img -boot_image any replay

最後按照 USB flash installation medium#Using the ISO as is (BIOS and UEFI) 使用重新打包的 ISO（`archlinux-version-x86_64-with-cidata.iso`）準備 U 盤安裝介質。

### 使用單個定製的 ISO

除了上述方法，也使用 Archiso 創建一個自定義 ISO。這樣，無論類型如何，都可以只使用一個驅動器。

以 releng 配置文件作為基礎。將 cloud-init 配置文件放在 `airootfs/var/lib/cloud/seed/nocloud/` 中，然後構建 ISO。

### 從安裝介質啟動

完成後，使用適當的方法將安裝介質和 cloud-init 數據介質（如果是單獨的）部署到無頭計算機。

啟動無頭計算機，從安裝介質啟動到 Live Arch 環境。等待一分鐘左右來讓無頭計算機啟動並連接到網絡。

從您現有的計算機（帶鍵盤和顯示器）通過 SSH 連接到無頭伺服器上的 Live Arch 環境，並按照安裝指南完成安裝。

注意：顯然，啟動鏡像中的所有 Wi-Fi 和 SSH 配置都需要在實際的 Arch Linux 安裝中再次配置，以便在安裝後允許 WiFi SSH 訪問無頭計算機。
分類：​

- 安裝過程
- SSH

通過 SSH 安裝 Arch Linux
新增話題