SSH からインストール

提供: ArchWiki
2024年8月16日 (金) 18:38時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (Category:セキュアシェル)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

この記事は、SSH 接続を介して Arch をリモートでインストールする方法を目的としています。ホストがリモートにある場合、または SSH クライアントのコピー/ペースト機能を使用して Arch インストールを実行する場合は、このアプローチを検討してください。

リモート (ターゲット) マシン上で

ノート: これらの手順では、マシンへの物理的なアクセスが必要です。ホストが物理的に別の場所にある場合は、別の担当者と調整する必要がある場合があります。

Live CD/USB イメージの取得とインストール を介して、ターゲットマシンを live Arch 環境で起動して、ユーザーは root としてログインします。

この時点で、インストールガイド#インターネットへの接続 で提案されている例に従って、ターゲットマシン上にネットワークをセットアップします。

root のデフォルトの Arch パスワードは空であるため、SSH 接続に必要な root パスワードを設定します:

# passwd

/etc/ssh/sshd_configPermitRootLogin yes が設定されていることを確認します。そうでない場合は、これを設定し、OpenSSH デーモン sshd.service再起動 して変更を適用します。

ノート: ターゲットマシンが NAT ルーターの背後にあり、外部アクセスが必要な場合は、SSH ポート (デフォルトでは 22) をターゲットマシンの LAN IP アドレスに転送する必要があります。あるいは、ローカル (クライアント) マシンへのリバース SSH トンネルを設定し、それを通じて接続し直すこともできます。ssh(1)-R フラグを参照してください。

ローカルマシン上で

ローカルマシンで、次のコマンドを使用して SSH 経由でターゲットマシンに接続します:

$ ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@ip.address.of.target
ノート: -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null オプションを使用すると、ライブ環境の SSH ホストキーを検証して ~/.ssh/known_hosts に書き込むことができなくなります。これにより、以前に IP アドレスに接続したことがある場合、REMOTE HOST IDENTIFICATION HAS CHANGED 警告が表示されなくなります。
ヒント: 両方のマシンが同じローカルネットワーク上にある場合は、ターゲットの IP アドレスの代わりに mDNS ホスト名 archiso.local を使用できます:
$ ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@archiso.local

ここから、ライブ環境のウェルカムメッセージが表示され、物理キーボードの前に座っているかのようにターゲットマシンを管理できます。この時点で、ライブメディアから Arch をインストールするだけの場合は、インストールガイド に従ってください。破損した既存の Linux インストールを編集することが目的の場合は、既存の Linux からインストール Wiki の記事に従ってください。

ヒント: ターゲットマシンで GNU Screen または tmux を使用することを検討してください (どちらもライブ環境で使用できます)。これにより、切断された場合でもマルチプレクサのセッションに再接続できます。

ヘッドレスサーバーへのインストール

ノート: これらの手順では、ヘッドレスマシンへの物理的なアクセスが必要になる場合があります。誰かがインストールメディアを挿入し、ヘッドレスサーバーの電源を入れる必要があります。

このセクションでは、キーボード、マウス、ディスプレイのないヘッドレスサーバーへの Arch Linux のインストールについて説明します。cloud-init NoCloud 構成の追加ドライブを使用して、OpenSSH 承認キーとオプションで iwd 接続を自動的に設定します。

Cloud-init 設定ファイルを準備する

必要な cloud-init 設定ファイルは 3 つあります: meta-datauser-data、および network-config

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 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX をパブリック 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

cloud-init は、ISO で出荷されたものとは異なるネットワーク構成を作成します。つまり、mDNS レスポンダーと DHCPv6 クライアントが有効になっていません。これを回避するには、network-config で Cloud-init のネットワーク設定を無効にします:

network-config
version: 2
config: disabled

3 つのファイルがすべて作成されたら、CIDATA というラベルの付いた ISO 9660 または FAT ボリュームを持つドライブに配置する必要があります。

追加の FAT フォーマットされたドライブの使用

FAT でフォーマットされたドライブを使用してください。meta-datauser-data、および network-config をドライブにコピーし、ファイルシステムの LABEL を {{ic|CIDATA} に変更します}。

公式 ISO を持つドライブに加えて、このドライブをヘッドレスマシンに接続する必要があります。

追加の ISO の使用

libisoburnxorriso を使用して、cloud-init.iso ファイルを作成します:

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

cloud-init.iso を光ディスクに 書き込み して、cloud-init データメディアを準備します。展開オプションが許可する場合は、ISO をそのまま使用します。

USB フラッシュドライブを使用する

インストールイメージが USB フラッシュドライブなどに書き込まれる場合、ドライブに十分なスペースがあれば、cloud-init データを格納する追加のパーティションを作成できます。

dosfstoolsmtools、および libisoburnインストール して下さい。

まず、LABELCIDATA に設定して FAT イメージを作成します:

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

meta-data ファイルと user-data ファイルをそのルートにコピーします:

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

公式 ISO を再パックして、FAT イメージを 3 番目のパーティションとして含めます:

$ 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 インストールメディア#ISO をそのまま使う (BIOS と UEFI) に従って、再パックされた ISO (archlinux-version-x86_64-with-cidata.iso) を使用して USB フラッシュドライブインストールメディアを準備します。

単一のカスタムビルド ISO の使用

あるいは、Archiso を使用してカスタム ISO を作成します。これにより、タイプに関係なく 1 つのドライブのみを使用できます。

relen プロファイルを基礎として使用します。Cloud-init 設定ファイルairrootfs/var/lib/cloud/seed/nocloud/ に配置し、ISO をビルドします。

インストールメディアから起動する

完了したら、適切な方法を使用して、インストールメディアと cloud-init データメディア (別々の場合) をヘッドレスマシンに展開します。

ヘッドレスマシンの電源を入れ、インストールメディアから live Arch 環境を起動します。ヘッドレスマシンが起動してネットワークに接続するまで、1 分ほど待ちます。

既存のマシン (キーボードとディスプレイ付き) から SSH でヘッドレス サーバー上のライブ Arch 環境に接続し、インストールガイド の説明に従ってインストールを完了します。

ノート: さらに詳しく説明すると、インストール後にヘッドレスマシンへの WiFi SSH アクセスを許可するには、ブートイメージで実行されたすべての Wi-Fi および SSH 構成を実際の Arch Linux インストールで再度実行する必要があります。