愛島発電所

QT SOLAR 愛島発電所

本日の発電量
288 kWh
現在の日射量
1 Wh/㎡
現在の外気温
15.2 ℃

(2024/10/09 18:02 更新)

下増田発電所

QT SOLAR 下増田発電所

本日の発電量
26 kWh
現在の日射量
1 Wh/㎡
現在の外気温
15.6 ℃

(2024/10/09 17:59 更新)

北原東発電所

QT SOLAR 北原東発電所

本日の発電量
37 kWh
現在の日射量
4 Wh/㎡
現在の外気温
15.4 ℃

(2024/10/09 18:11 更新)

長久良辺発電所

QT SOLAR 長久良辺発電所

本日の発電量
51 kWh
現在の日射量
6 Wh/㎡
現在の外気温
15.7 ℃

(2024/10/09 17:50 更新)

白坂発電所

QT SOLAR 白坂発電所

本日の発電量
54 kWh
現在の日射量
6 Wh/㎡
現在の外気温
17.2 ℃

(2024/10/09 18:07 更新)

清水沢発電所

QT SOLAR 清水沢発電所

本日の発電量
69 kWh
現在の日射量
0 Wh/㎡
現在の外気温
14.7 ℃

(2024/10/09 18:09 更新)

SSH | NUCでLinux Server

Ubuntu ServerをSSHを利用して遠隔操作出来るようにします。

Ubuntu Serverの管理はLXDEを導入した後は主にLXTerminalを利用して行うことになりますが、SSHはこの管理についてネットワーク上にある別のPCのTerminalから行うためのものです。このSSHも数あるサーバーサービスのうちのひとつです。

SSHを使えるようにするために以下の手続を行います。

  • ネットワークの確認
  • SSHのインストール
  • 秘密鍵・公開鍵の設定
  • 動作環境の設定
  • サービスの再起動と確認

今回は、SSHの接続に「秘密鍵・公開鍵」による認証を使います。

それから、モバイルからもSSH接続できるようにしましょう。

  • モバイル環境

ネットワークの確認

先ずは限定されたネットワークであるLAN環境でSSHの導入を行います。もちろん最終的にはWAN環境に移行します。

IPアドレスの確認

Ubuntu Serverのインストール時にネットワークに関して何も設定していなければ、IPアドレスはDHCPサーバー(通常はルーターがこの機能を兼ねています)により与えられていますが、動的アドレスなので起動する度にifconfigで確認する必要があります。

$ ifconfig
(中略)
p2p1      Link encap:Ethernet  HWaddr c0:3f:d5:65:d5:6b
inet addr:192.168.0.102  Bcast:192.168.0.255  Mask:255.255.255.0

今回は、上記のようにIPアドレスが192.168.0.102だったものとして話を進めます。

なお、静的なIPアドレスへの移行は後に行うモバイルルーターのネットワークへの参加以降に行います。

SSHのインストール

先ずはSSHをインストールします。Ubuntu Serverのインストール時にSSHも同時にインストールしているなら、この作業は要りません。

sudo apt-get install openssh-server

サービスを開始します。

$ sudo service ssh start

動作の確認

最初にインストール直後の標準状態でSSHが使えるか確かめます。Ubuntu Serverとは別の同じネットワーク上にある端末からつないでみましょう。

MacOSの場合はターミナル.appを使います。

Ubuntu Serverのローカルアカウントを利用して接続します。

$ ssh your-account@192.168.0.102

この直後にパスワードを聞かれれば、ここまでのところ上手く行っています。Ubuntu Serverのローカルアカウントに対応するパスワードを入力すれば、その後は、LXTerminalを使うのと同じように操作ができます。

動作の確認が出来たら、SSH接続から抜けます。

$ exit

ここから先のUbuntu Serverの設定を行うための端末はLXTerminalでもSSHでも構いません。

秘密鍵・公開鍵の設定

RSA秘密鍵認証は秘密鍵と公開鍵の2つの鍵を使って実現します。

公開鍵
サーバーサービス(SSH)を提供するUbuntu Server側の鍵
秘密鍵
SSHの利用者側の鍵

これらの鍵は、ホスト側でもクライアント側でも作成出来ますが、通常の運用では趣旨からいってホスト側で作るのがよいと思います。

秘密鍵・公開鍵の作成

鍵の作成時にはパスフレーズの入力を求められます。これは秘密鍵を守るためのものでログイン時のパスワードとは関係ありません。また、SSHの認証で使われているわけではなく、その認証に使う秘密鍵を正当な利用者だけが使えるようにするための仕組みです。1台のPCを家族で(アカウントを分けることなく)使っているようなケースを考えればよいですかね。

MacOSで作成
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/your-mac-account/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): *
Enter same passphrase again: *

過去に鍵を作ったことがあるなら以下のようなメッセージが表示されます。

/Users/your-mac-account/.ssh/identity already exists.

作成されたファイル、ディレクトリは不可視属性なので、確認のためのlsには-aオプションが必要です。

$ ls -la ./.ssh

次の3つのファイルがあることが確認できます。

id_rsa
Macが持つ秘密鍵です。アクセス権限を見れば分かる通り、所有者だけが内容を見ることができます。
id_rsa.pub
Ubuntu Server側が持つ公開鍵です。後で、これをUbuntu Server側に設定します。
known_hosts
過去に接続したホスト(Ubuntu Server)の情報が記録されます。成りすまし対策に使われます。

公開鍵の配置

クライアント側からSFTPを使ってサーバー側に接続します。このとき、既に秘密鍵を所有していることから(実際にはまだ鍵のよる認証を必要とする段階ではないですが)パスワードを求められる場合は、先ほど設定したパスフレーズを入力します。

$ sftp your-account@192.168.0.102

サーバー側にファイルを送る場合はputを使います。受け取る場合はgetです。

sftp> put ./.ssh/id_rsa.pub
sftp> exit

再びSSHを使ってサーバー側に接続し、id_rsa.pubの内容をauthorized_keysに追加します。

$ cat ./id_rsa.pub >> ./.ssh/authorized_keys

何故にcpmvではなくcatかというと、ファイルの上書きではなく、ファイルの内容をリダイレクトによって追記するからです。

今回のようにauthorized_keysがない状態ではどれでもよいのですが、いずれにせよ予め.sshディレクトリを作成しておきます。

動作環境の設定

動作環境の設定はviを使ってsshd_configファイルを編集することで行います。

sudo vi /etc/ssh/sshd_config

今回は以下のポリシーで運用します。

rootでのログインを禁止
PermitRootLogin no
RSA認証(SSH version1)を無効
RSAAuthentication no
RSA認証(SSH version2)を有効
PubkeyAuthentication yes
パスワード認証を無効
PasswordAuthentication no
パスワード無しのログインを禁止
PermitEmptyPasswords no
チャレンジレスポンス認証を無効
ChallengeResponseAuthentication no
rhostによる接続を無効
RhostsRSAAuthentication no

パスワード認証の無効化は、RSA認証(SSH version2)の動作確認が取れてから行うほうがベターかも知れません。

また、次の動作環境に関する設定も行います。

キーファイルの配置場所
AuthorizedKeysFile %h/.ssh/authorized_keys
ポート番号
Port 50000

この場合のキーファイルは/home/your-account/.ssh/authorized_keysとなります。また、ポート番号は標準が22ですが、SSHの利用者のみが知っている番号が望ましいため49152から65535の間の任意の数字を設定します。

サービスの再起動と確認

新たな設定や公開鍵を有効なものにするためにサービスを再起動します。

$ sudo service ssh restart

再接続の際には、鍵による認証が行われることになります。また、ポートを変更した場合には、そのポート番号を指定する必要があります。

$ ssh your-account@192.168.0.102 -p 50000

なお、接続出来なくなってしまった場合は、SSHをデバッグモードで起動すると解決の糸口を見付けることが出来るでしょう。

$ ssh -v your-account@192.168.0.102

今後、Ubuntu Serverを再起動することもあるでしょうから、sysv-rc-confを使って、ランレベルの設定確認をしておきましょう。

モバイル環境

せっかくですので、iPhone、iPad等からもSSHを利用出来るようにしておきます。

SSHを使うためのAppは様々のものがありますが、ここではiTerminal Proを使ってみます。

Macで鍵を作成した場合は、id_rsaをiPhone等に送ります。実際に必要なのは中身のテキストなので、メモに貼り付けておいて、iPhone側のメモから当該テキストをコピーした後にiTerminal ProSettingsにあるKey ManagementAddするのが簡単でしょう。