LoginSignup
9
0

More than 1 year has passed since last update.

Nervesにユーザ名/パスワードでSSHログインする

Last updated at Posted at 2021-12-10

この記事は#NervesJP Advent Calendar 2021の11日目です。

10日目は @the_haigo さんの「Nerves で GPS Loggerを作ってみた」でした。


背景

これまで、NervesにSSHする場合はSSHの鍵ペアを作成後 config/target.exs に公開鍵を登録していると思います。

これはこれで安全でいいとは思うんですが、Nervesのデモやハンズオン、複数人で利用しようとしている時に、SSH鍵の管理したくないなぁとか簡単にログイン情報共有したいなぁと思う場面が出てきます(よね)。

そこでいつの頃からか、 nerves_sshUsername/password authentication という機能が追加されていたのでやってみました。

前提

  • Nervesをコンパイル、SSHログインできる環境を構築できている

設定

config/target.exs に設定を追記します。

authorized_keys はSSH公開鍵を登録する箇所(こちらはおまけ)、
user_password はユーザ名/パスワードでSSHログインの設定を記入する箇所になります。

以下のような設定をすると、SSH公開鍵にマッチする秘密鍵がPCに保存されてない場合、ユーザ名/パスワードでSSHログインできるようになります。

ユーザ名 パスワード
kazuma nishiuchikazuma
aiueo kakikukeko
config/target.exs
config :nerves_ssh,
  authorized_keys: [
    "SSH公開鍵A",
    "SSH公開鍵B",
    "SSH公開鍵C"
  ]

config :nerves_ssh,
  user_passwords: [
    # {"username", "password"},
    {"kazuma", "nishiuchikazuma"},
    {"aiueo", "kakikukeko"}
  ]

確認

今回は aiueo ユーザでログインしてパスワードでログインできることを確認します。

fish
❯ ssh aiueo@192.168.5.156
SSH server
Enter password for "aiueo"
(aiueo@192.168.5.156) password: ※ここで「kakikukeko」と入力
Interactive Elixir (1.12.3) - press Ctrl+C to exit (type h() ENTER for help)
████▄▄    ▐███
█▌  ▀▀██▄▄  ▐█
█▌  ▄▄  ▀▀  ▐█   N  E  R  V  E  S
█▌  ▀▀██▄▄  ▐█
███▌    ▀▀████
yokogawa 0.1.0 (2418023f-ac9f-5cb1-7ac8-19ee000769e3) arm f3rp7x
  Uptime       : 1 minutes and 3 seconds
  Clock        : 2021-12-04 04:58:31 UTC

  Firmware     : Valid (B)               Applications : 32 started (mdns_lite not started)
  Memory usage : 44 MB (4%)              Part usage   : 36 MB (0%)
  Hostname     : nerves-00000000000000000Load average : 1.69 0.56 0.20

  eth0         : 192.168.5.156/24, fe80::200:64ff:fe9c:a2f0/64

Nerves CLI help: https://hexdocs.pm/nerves/using-the-cli.html

Toolshed imported. Run h(Toolshed) for more info.
iex(1)> 

まとめ

config/target.exsuser_passwords を設定すると、ユーザ名/パスワードでSSHログインできるようになりました。

注意事項

設定にあたっての注意事項は以下になります。

  • 認証の順序は authorized_keysuser_password となり、SSH鍵認証が優先される
  • SSHのデフォルトユーザは一番はじめに記載されたユーザ
  • パスワードが平文で保存される

明日は @torifukukaiou さんの「Third-party JS packages on Phoenix 1.6 (2021/12/12)」です。

9
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
0