ヒスねこTechBlog

日々の気になる技術をまとめてます。

Ubuntu autoinstallでsshをセットアップ

cloud-initを使用したUbuntuのautoinstallで、sshを自動セットアップする方法です。前回長めの記事になってしまったので、今回は短めにまとめようと思います。

techblog.hys-neko-lab.com

下準備

クライアント側で、ssh-keygenによるキーペア生成をしておきます。内容を表示したものをまるっとコピーして、user-dataのauthorized-keysにセットする必要があります。

$ ssh-keygen -t rsa -f mypair
$ cat mypair.pub
ssh rsa (~中略~) クライアント側ユーザ名@クライアント側ホスト名
user-dataの編集

前回記事で使用していた~/www/user-dataを下記のように編集します。例によってpasswordの部分は適切に変更してください。authorized-keysには先程のcatの結果(ssh rsa~クライアント側ホスト名 まで全部)を、そのままコピペします。

#cloud-config
autoinstall:
  version: 1
  identity:
    hostname: ubuntu-server
    password: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0"
    username: ubuntu
  ssh:
    allow-pw: false
    authorized-keys:
    - [cat mypair.pubの結果]
    install-server: true
動作確認

user-dataの編集が終わったら、前回記事同様にインストールします。ちなみにuser-dataに何らかの文法ミスがある場合、インストールが対話モードになってしまうことに注意してください。コロンの後にちゃんとスペースが入っているかなど、よく確認してみてください。

インストール完了後はdefineとstartして、クライアントから以下で接続します。

ssh -i mypair ubuntu@[仮想マシンのIPアドレス]