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