「SSH からインストール」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) |
|||
(4人の利用者による、間の10版が非表示) | |||
1行目: | 1行目: | ||
[[Category:Arch の入手とインストール]] |
[[Category:Arch の入手とインストール]] |
||
− | [[Category: |
+ | [[Category:セキュアシェル]] |
[[en:Install from SSH]] |
[[en:Install from SSH]] |
||
[[es:Install from SSH]] |
[[es:Install from SSH]] |
||
− | [[it:Install from SSH]] |
||
[[pt:Install from SSH]] |
[[pt:Install from SSH]] |
||
[[ru:Install from SSH]] |
[[ru:Install from SSH]] |
||
− | [[zh- |
+ | [[zh-hans:Install from SSH]] |
+ | この記事は、[[SSH]] 接続を介して Arch をリモートでインストールする方法を目的としています。ホストがリモートにある場合、または SSH クライアントのコピー/ペースト機能を使用して Arch インストールを実行する場合は、このアプローチを検討してください。 |
||
− | ==最初に== |
||
− | この記事は、SSHによるリモート接続を経由し、Archをインストールする方法を、ユーザに示しています。通常、次のようなシナリオの場合、SSH を使うことを検討する価値があります。 |
||
+ | == リモート (ターゲット) マシン上で == |
||
− | Arch をセットアップする PC が... |
||
− | *モニタ(画面)表示せずに操作する PC である場合。 |
||
− | *別の場所、街、国(友達の家、親の家など)に位置する PC。 |
||
− | *リモートでセットアップするほうが好ましい PC。例えば、Arch Wiki のコピー/ペーストが想定される時など。 |
||
− | {{Note| |
+ | {{Note|これらの手順では、マシンへの物理的なアクセスが必要です。ホストが物理的に別の場所にある場合は、別の担当者と調整する必要がある場合があります。}} |
+ | [[インストールガイド|Live CD/USB イメージの取得とインストール]] を介して、ターゲットマシンを live Arch 環境で起動して、ユーザーは root としてログインします。 |
||
− | ==メディアからの起動== |
||
− | [[ビギナーズガイド#最新のインストールメディアを準備する|live CD/USB イメージ]]から Live Arch 環境を起動する。 |
||
+ | この時点で、[[インストールガイド#インターネットへの接続]] で提案されている例に従って、ターゲットマシン上にネットワークをセットアップします。 |
||
− | ==SSH による Live 環境のセットアップ== |
||
− | {{Note|次のコマンドは、root ユーザーとして実行する必要があります。 コマンドの前の # がそれを意味しています。}} |
||
+ | root のデフォルトの Arch パスワードは空であるため、SSH 接続に必要な root パスワードを設定します: |
||
− | この段階で root としてログインしてください (LiveCD を動かす上のデフォルトユーザーです)。 |
||
+ | # passwd |
||
− | まずは、ターゲットマシン (リモート接続して Arch のセットアップを行う PC) 上で、ネットワーク設定を行います。 |
||
+ | {{ic|/etc/ssh/sshd_config}} に {{ic|PermitRootLogin yes}} が設定されていることを確認します。そうでない場合は、これを設定し、OpenSSH デーモン {{ic|sshd.service}} を [[再起動]] して変更を適用します。 |
||
− | 有線では、{{ic|dhclient}} か {{ic|dhcpcd}} を動作させて接続できます。詳しくは[[ネットワーク設定]]を参照。 |
||
+ | {{Note|ターゲットマシンが NAT ルーターの背後にあり、外部アクセスが必要な場合は、SSH ポート (デフォルトでは 22) をターゲットマシンの LAN IP アドレスに転送する必要があります。あるいは、ローカル (クライアント) マシンへのリバース SSH トンネルを設定し、それを通じて接続し直すこともできます。{{man|1|ssh}} の {{ic|-R}} フラグを参照してください。}} |
||
− | 無線では、アクセスポイントに接続するために[[ワイヤレス設定]]や [[Wpa_supplicant]] の情報を見て下さい。 |
||
+ | == ローカルマシン上で == |
||
− | 既知のインターフェースのリストが表示されます。使用するインターフェースのタイプを入力します。(有線イーサネットのインターフェースの eth0) |
||
+ | ローカルマシンで、次のコマンドを使用して SSH 経由でターゲットマシンに接続します: |
||
− | 次に、openssh デーモンを動かします: |
||
− | # systemctl start sshd |
||
+ | $ ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@''ip.address.of.target'' |
||
− | 最後に、ssh 接続に必要な root パスワードを設定します。デフォルトの Arch の root パスワードは空です。 |
||
− | passwd |
||
+ | {{Note|{{ic|1=-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null}} オプションを使用すると、ライブ環境の SSH ホストキーを検証して {{ic|~/.ssh/known_hosts}} に書き込むことができなくなります。これにより、以前に IP アドレスに接続したことがある場合、{{ic|REMOTE HOST IDENTIFICATION HAS CHANGED}} 警告が表示されなくなります。}} |
||
− | ==ターゲットマシンへの SSH 接続== |
||
− | 次のコマンドを使って、ターゲットマシンに接続します。 |
||
+ | {{Tip|両方のマシンが同じローカルネットワーク上にある場合は、ターゲットの IP アドレスの代わりに mDNS ホスト名 {{ic|archiso.local}} を使用できます: {{bc|1=$ ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@archiso.local}}}} |
||
− | $ ssh root@ターゲットのIPアドレス |
||
+ | ここから、ライブ環境のウェルカムメッセージが表示され、物理キーボードの前に座っているかのようにターゲットマシンを管理できます。この時点で、ライブメディアから Arch をインストールするだけの場合は、[[インストールガイド]] に従ってください。破損した既存の Linux インストールを編集することが目的の場合は、[[既存の Linux からインストール]] Wiki の記事に従ってください。 |
||
− | Live 環境のウェルカムメッセージを受け取れましたか?ここからは、物理的に離れた位置からキーボードを操作して、ターゲットマシンを管理出来るようになります。 |
||
+ | {{Tip|ターゲットマシンで [[GNU Screen]] または [[tmux]] を使用することを検討してください (どちらもライブ環境で使用できます)。これにより、切断された場合でもマルチプレクサのセッションに再接続できます。}} |
||
− | <pre>ssh root@10.1.10.105 |
||
− | root@10.1.10.105's password: |
||
− | Last login: Thu Dec 23 08:33:02 2010 from 10.1.10.200 |
||
− | [root@archiso ~]#</pre> |
||
+ | == ヘッドレスサーバーへのインストール == |
||
− | ===ノート=== |
||
− | *ターゲットマシンがファイアウォール/ルータ越しにある場合は、デフォルトの SSH ポートである 22 を、ターゲットマシンのローカルエリア上の IP アドレスに転送する必要があります。ポートフォワーディングを使用する方法については、このガイドでは説明していません。 |
||
− | *Live 環境下で、標準ポート番号以外を使うようなデーモンを実行したい場合は、一旦、{{ic|/etc/ssh/sshd_config}} を非標準ポートに設定してください。 |
||
− | *{{ic|/etc/ssh/sshd_config}} を編集することでデーモンが起動するより早くライブ環境を設定することができます、例えば非標準ポートを起動したいときに。 |
||
+ | {{Note|これらの手順では、ヘッドレスマシンへの物理的なアクセスが必要になる場合があります。誰かがインストールメディアを挿入し、ヘッドレスサーバーの電源を入れる必要があります。}} |
||
− | ==次のステップ== |
||
− | ここからは自由にやりたいことをしてください。ライブメディアから Arch をインストールしたいのなら、[[インストールガイド]]のガイドを見て下さい。既存の壊れた Linux のインストールをやりなおすには、[[既存の Linux からインストール]] を参照してください。 |
||
+ | このセクションでは、キーボード、マウス、ディスプレイのないヘッドレスサーバーへの Arch Linux のインストールについて説明します。[[cloud-init]] NoCloud 構成の追加ドライブを使用して、[[OpenSSH]] 承認キーとオプションで [[iwd]] 接続を自動的に設定します。 |
||
− | [[GRUB]] と [[GPT]] ハードドライブを使いたい場合 |
||
+ | === Cloud-init 設定ファイルを準備する === |
||
− | *Arch をインストールする前に ''pacman -S gdisk'' でインストールした '''gdisk''' ユーティリティを使って HDD/SSD を手動でパーティションします。インストール作業中にブートローダーをインストールするオプションが提示されたときは、no と回答してスキップし、Live 環境の root プロンプトに戻ります。 |
||
− | *この段階での GRUB2 のインストールは取るにたらないことです。新しい Arch 環境に chroot して(インストール後はデフォルトでマウント済み) GRUB2 をインストール・セットアップします: |
||
+ | 必要な [[cloud-init]] 設定ファイルは 3 つあります: {{ic|meta-data}}、{{ic|user-data}}、および {{ic|network-config}} |
||
− | cd /mnt |
||
− | rm console ; mknod -m 600 console c 5 1 |
||
− | rm null ; mknod -m 666 null c 1 3 |
||
− | rm zero ; mknod -m 666 zero c 1 5 |
||
− | mount -t proc proc /mnt/proc |
||
− | mount -t sysfs sys /mnt/sys |
||
− | mount -o bind /dev /mnt/dev |
||
− | chroot /mnt /bin/bash |
||
+ | {{ic|meta-data}} ファイルは空でも構いません: |
||
− | 新しい Arch に chroot: |
||
+ | $ printf "" > meta-data |
||
− | pacman -S grub2 |
||
− | grep -v rootfs /proc/mounts > /etc/mtab |
||
+ | {{ic|user-data}} には関連する設定が含まれます。 |
||
− | 必要に応じて {{ic|/etc/default/grub}} を編集します。 |
||
− | GRUB をインストールして grub.cfg を生成: |
||
+ | {{hc|user-data|2= |
||
− | grub-install /dev/sdX --no-floppy |
||
+ | #cloud-config |
||
− | grub-mkconfig -o /boot/grub/grub.cfg |
||
+ | users: |
||
+ | - name: root |
||
+ | ssh_authorized_keys: |
||
+ | - ssh-ed25519 ''XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'' |
||
+ | - ssh-ed25519 ''YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY'' |
||
+ | }} |
||
+ | {{ic|ssh-ed25519 ''XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX''}} をパブリック [[SSH 鍵]] に置き換えます。複数のキーを追加するには、上に示したステートメントを繰り返すだけです。 |
||
− | {{Note|The above assumes that if the user intends to boot from a GPT disk, the user has fully read and understood the aforementioned wiki articles and has made a 1M partition ef02 for grub2.}} |
||
+ | Wi-Fi ネットワークに自動的に接続するには、{{ic|write_files:}} ステートメントを使用して、[[iwd#ネットワーク設定|iwd ネットワーク設定ファイル]] を正しいディレクトリに作成します。例えば: |
||
− | 再起動する準備ができたら、chroot を解除して再起動する前にパーティションをアンマウントします。 |
||
+ | {{hc|user-data|2= |
||
− | exit |
||
+ | #cloud-config |
||
− | umount /mnt/boot # if mounted this or any other separate partitions |
||
+ | users: |
||
− | umount /mnt/{proc,sys,dev} |
||
+ | - name: root |
||
− | umount /mnt |
||
+ | 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 クライアントが有効になっていません。これを回避するには、{{ic|network-config}} で Cloud-init のネットワーク設定を無効にします: |
||
+ | |||
+ | {{hc|network-config| |
||
+ | version: 2 |
||
+ | config: disabled |
||
+ | }} |
||
+ | |||
+ | 3 つのファイルがすべて作成されたら、{{ic|CIDATA}} というラベルの付いた ISO 9660 または FAT ボリュームを持つドライブに配置する必要があります。 |
||
+ | |||
+ | === 追加の FAT フォーマットされたドライブの使用 === |
||
+ | |||
+ | [[FAT]] でフォーマットされたドライブを使用してください。{{ic|meta-data}}、{{ic|user-data}}、および {{ic|network-config}} をドライブにコピーし、ファイルシステムの [[LABEL]] を {{ic|CIDATA} に変更します}。 |
||
+ | |||
+ | 公式 ISO を持つドライブに加えて、このドライブをヘッドレスマシンに接続する必要があります。 |
||
+ | |||
+ | === 追加の ISO の使用 === |
||
+ | |||
+ | {{Pkg|libisoburn}} の ''xorriso'' を使用して、{{ic|cloud-init.iso}} ファイルを作成します: |
||
+ | |||
+ | $ xorrisofs -output cloud-init.iso -volid CIDATA -joliet -rational-rock meta-data user-data network-config |
||
+ | |||
+ | {{ic|cloud-init.iso}} を光ディスクに [[光学ディスクドライブ#焼き込み|書き込み]] して、cloud-init データメディアを準備します。展開オプションが許可する場合は、ISO をそのまま使用します。 |
||
+ | |||
+ | === USB フラッシュドライブを使用する === |
||
+ | |||
+ | インストールイメージが USB フラッシュドライブなどに書き込まれる場合、ドライブに十分なスペースがあれば、cloud-init データを格納する追加のパーティションを作成できます。 |
||
+ | |||
+ | {{Pkg|dosfstools}}、{{Pkg|mtools}}、および {{Pkg|libisoburn}} を [[インストール]] して下さい。 |
||
+ | |||
+ | まず、[[LABEL]] を {{ic|CIDATA}} に設定して [[FAT]] イメージを作成します: |
||
+ | |||
+ | $ mkfs.fat -C -n CIDATA cloud-init.img 2048 |
||
+ | |||
+ | {{ic|meta-data}} ファイルと {{ic|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 ({{ic|archlinux-version-x86_64-with-cidata.iso}}) を使用して USB フラッシュドライブインストールメディアを準備します。 |
||
+ | |||
+ | === 単一のカスタムビルド ISO の使用 === |
||
+ | |||
+ | あるいは、[[Archiso]] を使用してカスタム ISO を作成します。これにより、タイプに関係なく 1 つのドライブのみを使用できます。 |
||
+ | |||
+ | relen プロファイルを基礎として使用します。[[SSH からインストール#Cloud-init 設定ファイルを準備する|Cloud-init 設定ファイル]] を {{ic|airrootfs/var/lib/cloud/seed/nocloud/}} に配置し、ISO をビルドします。 |
||
+ | |||
+ | === インストールメディアから起動する === |
||
+ | |||
+ | 完了したら、適切な方法を使用して、インストールメディアと cloud-init データメディア (別々の場合) をヘッドレスマシンに展開します。 |
||
+ | |||
+ | ヘッドレスマシンの電源を入れ、インストールメディアから live Arch 環境を起動します。ヘッドレスマシンが起動してネットワークに接続するまで、1 分ほど待ちます。 |
||
+ | |||
+ | 既存のマシン (キーボードとディスプレイ付き) から [[SSH]] でヘッドレス サーバー上のライブ Arch 環境に接続し、[[インストールガイド]] の説明に従ってインストールを完了します。 |
||
+ | |||
+ | {{Note|さらに詳しく説明すると、インストール後にヘッドレスマシンへの WiFi SSH アクセスを許可するには、ブートイメージで実行されたすべての Wi-Fi および SSH 構成を実際の Arch Linux インストールで再度実行する必要があります。}} |
2024年8月16日 (金) 18:38時点における最新版
この記事は、SSH 接続を介して Arch をリモートでインストールする方法を目的としています。ホストがリモートにある場合、または SSH クライアントのコピー/ペースト機能を使用して Arch インストールを実行する場合は、このアプローチを検討してください。
目次
リモート (ターゲット) マシン上で
Live CD/USB イメージの取得とインストール を介して、ターゲットマシンを live Arch 環境で起動して、ユーザーは root としてログインします。
この時点で、インストールガイド#インターネットへの接続 で提案されている例に従って、ターゲットマシン上にネットワークをセットアップします。
root のデフォルトの Arch パスワードは空であるため、SSH 接続に必要な root パスワードを設定します:
# passwd
/etc/ssh/sshd_config
に PermitRootLogin yes
が設定されていることを確認します。そうでない場合は、これを設定し、OpenSSH デーモン sshd.service
を 再起動 して変更を適用します。
ローカルマシン上で
ローカルマシンで、次のコマンドを使用して SSH 経由でターゲットマシンに接続します:
$ ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@ip.address.of.target
ここから、ライブ環境のウェルカムメッセージが表示され、物理キーボードの前に座っているかのようにターゲットマシンを管理できます。この時点で、ライブメディアから Arch をインストールするだけの場合は、インストールガイド に従ってください。破損した既存の Linux インストールを編集することが目的の場合は、既存の Linux からインストール Wiki の記事に従ってください。
ヘッドレスサーバーへのインストール
このセクションでは、キーボード、マウス、ディスプレイのないヘッドレスサーバーへの Arch Linux のインストールについて説明します。cloud-init NoCloud 構成の追加ドライブを使用して、OpenSSH 承認キーとオプションで iwd 接続を自動的に設定します。
Cloud-init 設定ファイルを準備する
必要な cloud-init 設定ファイルは 3 つあります: meta-data
、user-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-data
、user-data
、および network-config
をドライブにコピーし、ファイルシステムの LABEL を {{ic|CIDATA} に変更します}。
公式 ISO を持つドライブに加えて、このドライブをヘッドレスマシンに接続する必要があります。
追加の ISO の使用
libisoburn の xorriso を使用して、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 データを格納する追加のパーティションを作成できます。
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 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 環境に接続し、インストールガイド の説明に従ってインストールを完了します。