【Chromebook】SSHサーバの設定

SSH Chromebook/Linux

VPSへのアクセスやこのWordPressの管理等はChromebookのLinuxから主に行っていますが、普段のそれ以外の作業はWindowsを使用しています。作業の合間にちょこっとLinuxで作業がし易いようにChromebookのLinuxにSSHでアクセスできるようにしました。

鍵の生成

公開鍵暗号で認証を行いますので、以下のコマンドで鍵を生成します。Windowsでも同様です。

- Client -
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user_name/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user_name/.ssh/id_rsa
Your public key has been saved in /home/user_name/.ssh/id_rsa.pub

これで秘密鍵のid_rsaと公開鍵のid_rsa.pubがホームディレクトリの.sshディレクトリに作成されています。

Client環境

このページではClient環境もLinuxを想定して記述しています。Windowsの場合はpowershellを起動して実行してください。OpenSSHなので、パス指定などを読み替えればコマンドはほぼ同一です。viを使っている部分はnotepad.exe等のエディタで代替してください。

ChromebookのSSHサーバの設定

ChromebookでSSHサーバが稼働しているかを確認します。

- Chromebook -
$ sudo systemctl status ssh.service

active (running)と表示されれば稼働しています。

次に、sshd_configファイルを編集して以下の設定を加えます。

- Chromebook -
$ sudo vi /etc/ssh/sshd_config
Port 10022
PasswordAuthentication yes
パスワード認証

【PasswordAuthentication yes】と設定することでパスワード認証を有効にしています。これは、公開鍵をChromebookに渡すためにscpをする為に一時的に設定しているものです。なので、公開鍵認証が設定出来たらnoに変更します。

ポート番号

Chromebookでは最初からポート2222でSSHサーバが動いていますが、これはChromeOSとやり取りする為のもののようです。ですので、1024で2222以外のポートを指定します。ここでは10022としています。

SSHサーバを再起動します。

- Chromebook -
$ sudo systemctl restart ssh.service

Client側からChromebookにSSH接続できるか確認しておきます。

- Client -
$ ssh -i ~/.ssh/id_rsa -p 10022 ChromebookのLinuxユーザ名@ChromebookのIPアドレス

パスワード認証でログインできればOKです。

尚、ここでChromebookのIPアドレスはChromeOSのものですので、ターミナルでipコマンド等で確認できるIPアドレスではありません。確認は以下のように行います。

  1. 画面右下のWiFiマークをクリック
  2. WiFi SSID横の▼をクリック
Chromebook - Choose WiFi

ネットワークの右上のインフォメーションマークをクリックするとIPアドレスが表示される。

Chromebook - Network Information

Chromebookでのポート転送の設定

Chromebookの10022番ポートをLinuxに転送する設定をします。

Chromebookの【設定】→【詳細設定】→【デベロッパー】→【Linux開発環境】→【ポート転送】を開き、【追加】を選択します。
そこにポート番号10022、TCPと設定します。

Chromebook - Linux Port Forwarding. TCP 10022 will be forwarded with the setting labeled as SSH.

設定したポートの転送がオンになっていることを確認しておきます。

Chromebook Portforwarding: Turning on SSH forwarding.

ポート転送はChromebookを再起動するとオフになってしまいますので、毎回起動後に①ターミナルを開いてLinuxコンテナを起動する、②ChromeOSの設定からポート転送をオンにする、の作業が必要となります。

公開鍵のサーバへの登録

Chromebookのホームディレクトリに.sshディレクトリを作成し、パーミッションを変更しておきます。

- Chromebook -
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh

Client側で生成した公開鍵をChromebookに転送します。

- Client -
$ scp -P 10022 id_rsa.pub ChromebookのLinuxユーザ名@ChromebookのIPアドレス:~/.ssh/.

ChromebookのLinuxで公開鍵をauthorized_keysファイルに追記し、パーミッションが600でなかった場合は600に変更しておきます。

- Chromebook -
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

これで公開鍵認証の準備が整いましたので、SSHサーバのパスワード認証を無効にし、SSHサーバを再起動します。

- Chromebook -
$ sudo vi /etc/ssh/sshd_config
PasswordAuthentication no
- Chromebook -
$ sudo systemctl restart ssh.service

Client側から公開鍵認証でSSH接続できるか確かめます。

- Client -
$ ssh -p 10022 -i id_rsa.pub ChromebookのLinuxユーザ名@ChromebookのIPアドレス

ログイン出来たらOKです。毎回上記のコマンドを入力するのも面倒なので、configファイルに設定を記載しておきます。

- Client -
$ vi ~/.ssh/config
Host chrome
        HostName ChromebookのIPアドレス
        Port 10022
        User Chromebookのユーザ名
        IdentityFile ~/.ssh/id_rsa
        ServerAliveInterval 60

以下コマンドでアクセスできればOKです。

- Client -
$ ssh chrome

コメント

タイトルとURLをコピーしました