よもやま話β版

よもやま話を書きます。内容はぺらぺら。自由に書く。

AndroidからSSHできるようにした

スマホから持ってるサーバにSSHしたいな〜と思っていたのでやってみた。 すでに対象サーバにはPCからSSHできるものとする。

SSHクライアントを入れる

サクッと調べて、アプリ「Termius」が良さそうと思い入れてみた。iOS,Androidどちらでもアプリはあるようだ。アプリを入れて、案内に従ってアカウントを作成する。

(Termius)鍵を作る

アカウントの作成ができたら、鍵を作る。 メニュー > Keychain > +アイコン > Generate Key を押す。 名前と鍵のアルゴリズム(ED25519とか)、パスフレーズ*1を入れると生成できる。 生成後、鍵を押すと秘密鍵/公開鍵の内容を閲覧できる。 長押しで鍵の選択・コピーができる。

サーバに鍵を登録

対象サーバに入って、公開鍵を ~/.ssh/authorized_keys に追加し、念の為sshdを再起動しておく。

$ sudo service sshd restart

(Termius) SSH接続設定を作成する

その後、 + アイコンより New host の作成に進む。

入りたいサーバの情報を入力する。いろいろな項目があるが、最低限は次のものが必要かと考える。

  • Hostname or IP Address: 必須
  • SSH: チェックON
  • Port: 22 もしくは 任意のポート番号
  • Username: 対象ユーザー名
  • Password: 鍵でログインさせるので未入力でOK
  • Key: 鍵マークを押して作った鍵を選ぶ。

接続できた、やったね

無事接続できると、馴染みのコンソールが見える。 これで何かあったときもどうにかできる足がかりとして使えそうだ。

動機として、小さいカバンで出歩けるようにしたかった*2のでやった。
小さいカバンを買うぞ!!!

おまけ: キーボードも必要

なにかあったとき用にポータブルキーボードが欲しいと思って、Ewinの折り畳み式キーボードを買った。

Amazon.co.jp: Ewin 新型 Bluetoothキーボード 折りたたみ式 157g 超軽量 薄型 レザーカバー 財布型 ワイヤレスキーボード USB 薄型 IOS/Android/Windows に対応 スマホ用 スタンド付 【日本語説明書と18月保証付き】(折りたたみ式, ブラック) : パソコン・周辺機器

かなり軽いし良さそう。端末スタンドがセットでついてきたのだが、完全に別物なので、キーボードと一緒に持っておきたい時はバンドか何かで留めておかねば無くしてしまいそうなところはちょっと不満な点。昔、知人が持ってたポータブルキーボードはスタンドも一緒に収納できるようなモノがあったはずと思っていたが、パッと見当たらなかった。うーん、メーカーを聞いておけばよかったな。

Androidスマホと折り畳みキーボード
サイズ感はこんな感じ

付属スタンド

平べったくはなるけど、紛失しそう。

おまけ2: プロセス再起動のためのsystemd登録

いつも決まったデプロイフローに任せきりだが、スマホには開発環境は当然入ってないので、 プロセスが死んだとき、sshして入って直接 $ sudo systemctl start hoge.service すれば動くようにしたかった。

次のサイト記事を参考にして設定したらうまくいった。 Unicorn 手動起動完全マニュアル Systemdを使ってさくっと自作コマンドをサービス化してみる - Qiita

以下備忘録。

作ったファイル(staging環境、/lib/systemd/system/hoge-unicorn.service )

$ sudo vi /lib/systemd/system/hoge-unicorn.service
[Unit]
Description=Awesome Unicorn Application Server
Before=nginx.service

[Service]
User=sampleuser
WorkingDirectory=/var/www/hoge/current
EnvironmentFile=/etc/default/hoge-unicorn
Environment=RAILS_ENV=staging
SyslogIdentifier=hoge-unicorn
PIDFile=/var/www/hoge/shared/tmp/pids/unicorn.pid
ExecStart=/usr/local/rbenv/shims/bundle exec "unicorn_rails -D -c /var/www/hoge/current/config/unicorn/staging.rb -E staging"

[Install]
WantedBy=multi-user.target

実施したことメモ

# `EnvironmentFile=/etc/default/hoge-unicorn` と指定しているので。というか無いなら、行ごと無くてよさそうではあるが。
$ sudo touch /etc/default/hoge-unicorn

$ sudo ln -s /lib/systemd/system/hoge-unicorn.service /etc/systemd/system/hoge-unicorn.service

$ sudo systemctl enable hoge-unicorn.service
Created symlink /etc/systemd/system/multi-user.target.wants/hoge-unicorn.service → /lib/systemd/system/hoge-unicorn.service.
$ sudo systemctl daemon-reload

# serviceとして登録されたか確認
$ sudo systemctl list-unit-files --type=service  | grep hoge-unicorn
hoge-unicorn.service                     enabled

# 動作確認
$ sudo systemctl start hoge-unicorn.service
$ sudo systemctl status hoge-unicorn.service
● hoge-unicorn.service - Awesome Unicorn Application Server
   Loaded: loaded (/lib/systemd/system/hoge-unicorn.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2022-08-16 18:16:07 JST; 1s ago
 Main PID: 21508 (ruby)
    Tasks: 3 (limit: 4680)
   CGroup: /system.slice/hoge-unicorn.service
           ├─21508 ruby /var/www/hoge/shared/bundle/ruby/2.7.0/bin/unicorn_rails -D -c /var/www/hoge/current/config/unicorn/staging.rb -E staging
           └─21553 ruby /var/www/hoge/shared/bundle/ruby/2.7.0/bin/unicorn_rails -D -c /var/www/hoge/current/config/unicorn/staging.rb -E staging

Aug 16 18:16:07 systemd[1]: Started Awesome Unicorn Application Server.

無事、サービスを見にいくとちゃんと動いた。めでたし。

*1:この時、パスフレーズはわざと保存しなかった。うっかり誰かに操作されたときに容易にサーバに入られないようにするため。そもそもうっかりが無いことが理想だが、心配性なので、念には念を入れる。

*2:何かあったらどうしよう恐怖症を抱えており、どこへ行くにも保守運用のためのPCを持ち歩く生活をかなり長い間やっていた。肩がそろそろしんどい。