通過 SSH 安裝 Arch Linux

出自 Arch Linux 中文维基

本文介紹如何通過 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 Screentmux(在 Live 環境中兩者都可用)。這樣,如果斷開連接,還可以重新連接到多路復用器的會話。

在無頭伺服器上安裝[編輯 | 編輯原始碼]

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

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

準備 cloud-init 配置文件[編輯 | 編輯原始碼]

需要兩個 cloud-init 配置文件:meta-datauser-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-datauser-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 數據。

安裝 dosfstoolsmtoolslibisoburn

首先創建一個 LABEL 設置為 CIDATAFAT 鏡像:

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

meta-datauser-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 訪問無頭計算機。