chromebookでssh
chromebook同士でファイル共有する方法としてニアバイシェアというのがあるけど、なんか思ってたのと違う。なので、sshで繋いでファイルのやりとりを直接やってしまおう、のメモ。
chromebookを2台使っていて、メインとサブという役割分担。
メインで使っていて作業した内容をサブ機にsshで転送・バックアップしておきたい。
まずはchromebookの設定。メイン機のLinux環境からサブ機のLinux環境に繋ぐためにポート転送を設定する。道路を繋ぐための作業、みたいなもの。
サブ機側のポート転送を設定。
「ChromeOSについて→Linux開発環境→ポート転送」
ポート番号はすでに使われている番号以外ならなんでもOK
sudo less /etc/service
↑これで確認できる。とりあえず10001〜10080のあたりが空いてるので「10022」とした
ポート転送を設定することで
1)サブ機のローカルIPアドレス192.168.0.NNにSSHでポート番号を指定してアクセスする
2)サブ機側がポート転送してくれて、サブ機のLinux環境にログインできる
サブ機のLinux環境でsshdサービスを立ち上げる
(サブ機をsshdサーバーにする)
sshdサービスがどうなってるのか確認。
sudo systemctl status sshd.service
この時点では「Active: inactive (dead)」という表示が出ている。ssdは立ち上がっていないので、sshdを立ち上げるために以下の作業。
(sudo、root権限で/etc/以下のファイルを編集することになるので、念のためバックアップを取っておくのが安心安全)
「/etc/ssh/sshd_not_to_be_run」というファイルがあるとsshdが立ち上がらないらしいので削除
sudo rm /etc/ssh/sshd_not_to_be_run
「/etc/ssh/sshd_config」というのがsshdの設定ファイル。
Port 10022
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
PermitRootLogin no
UsePAM no
AcceptEnv LANG LC_*
chromebookのポート転送で指定したポート番号を記載。それ以外は呪文でOK(ルートでアクセス許可するかとか)で、上記以外はデフォルトのままでOK.
設定ファイルを編集したらsshdサービスを立ち上げる
sudo systemctl restart sshd.service
立ち上がってるか確認
sudo systemctl status sshd.service
「Active: active (running)」という表示が見えたら無事sshdのサービスは立ち上がっている。
サブ機のLinux環境のHOMEディレクトリに「.ssh」というディレクトリを作成。
chmod 700 .ssh
として、権限をオーナー限定にしておく。
メイン機でsshの秘密鍵と公開鍵を作る
ホームディレクトリで
ssh-keygen
途中パスフレーズ聞かれて、入力すると「id_rsa」(秘密鍵)「id_rsa.pub」(公開鍵)がHOMEディレクトリの「.ssh」ディレクトリに作られる。公開鍵以外の権限はオーナー限定(0600)
メイン機で作った公開鍵をサブ機のHOMEディレクトリの.sshディレクトリにコピー
scp -P 10022 id_rsa.pub ユーザー名@192.168.0.NN:~/.ssh/.
メイン機で作った公開鍵をサブ機にコピーしたら、サブ機で作業
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
サブ機の.sshディレクトリの「authorized_keys」というファイルに公開鍵を登録(追記コピーしてるだけ)
以上でsshは繋がる。
ssh -p 10022 -i id_rsa.pub ユーザ名@192.168.0.NN
とか
ssh -p 10022 -l ユーザー名 192.168.0.NN
メイン機からサブ機にログインしてごそごそいじったり
scp -P 10022 -r work ユーザ名@192.168.0.NN:work
などとメイン機からサブ機にファイルコピーしたり
ファイル操作がらくちんになった。
とはいえ、コマンドラインなので、上書き事故には気をつけないといけない、よなあ。
ちなみに注意するところがあって。
linux開発環境も、ポート転送も手動。chromebookを立ち上げたり、再起動したら
・Linux開発環境を立ち上げる
・ポート転送をONにする
…というのもあって、どうせ確認するわけだし、IPアドレスも自動割り当てのままにした。
以下のサイトを参考にさせていただきました(多謝
【Chromebook】SSHサーバの設定
ChromebookのLinuxコンテナにSSHでログインする
最近のネタ切れの時の弁当は2色、3色弁当。
なんかこういう手抜きの方が美味しかったりするから、ちょっと悔しい。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
小ネタ:pdftotextで文字データを抽出
元データがPDFで、圏点(傍点)やダッシュをPDFから検出する必要にせまられた。
目視確認などありえないんで、テキストデータとして取り出して検索しよう、というのが今回のエントリ…というかエントリにするまでもない内容なんだけど、たぶんそのうち忘れるんで、メモ。
PDFから文字情報だけをひっぱりだすのに定番の「pdftotext」というツールを使う。
perlだけでもできそうなんだけど(PDF::API2あたり)ちょっと時間も押してるんで、外部ツールを間に挟むことにした。
まずは肝腎のpdftotextのインストール。これがpoppler-utilsというパッケージだなんて検索しないとわからなかった(pdftotextというパッケージがあるもんだと思ってた)
以下のコマンドラインでインストール
sudo apt-get install poppler-utils
unix系のツールの例に漏れず、これもいろんなオプションが用意されてるけど、今回必要なのは文字情報だけ。レイアウトデザイン情報やなんかは不要。
rawオプションをつけて利用する。
たとえば「kappa.pdf」の文字情報を抜き出すのは
pdftotext -raw kappa.pdf
こうすると「kappa.txt」に文字情報を吐き出す。ただ、これだとひと文字ずつだあーっと出力されるので、ここからがテキストデータを扱わせたら最強のperlの出番。
pdftotextの出力には改ページがつくので、そこで改行すれば「それっぽい段落」ごとに見えるひとに優しいテキストファイルとなる。
open(P, '-|', 'pdftotext -raw kappa.pdf - ' ) || die;
binmode STDOUT => ":utf8";
open(OUT, '>' , 'kappa.txt') || die;
binmode OUT => ":utf8";
while(<P>){
my $line = Encode::decode('utf8', $_);
$line =~ s!\r?\n!!;
$line =~ s!\x{C}!\n!;
print OUT $line;
}
close(OUT);
close(P);
特筆すべきようなスクリプトじゃないんだけど。
perlは外部コマンドの「標準出力」をパイプで受け取って加工整形できる。
open(P, '-|', 'pdftotext -raw kappa.pdf - ' )
openの
・第2引数で、標準出力を受け取りますよ、という指定
・第3引数はpdftotextの結果を標準出力に出すからね、という指定
これだけでそれっぽい段落にわけたテキストファイルを作ってくれる。
そうしたら、あとは出力されたテキストファイルからダッシュや圏点(傍点)っぽいものをperlで検知するだけ。これはワードで作ったPDFで「、」が圏点となっている。inDesignで作られたデータだと「0」(ゴマ)「4」(ドット)となる。
直接触ってもいいんだけど、一度テキストファイルに吐き出したほうがなにかわからないことが起こった時に便利なので、こういう仕様、段取り。
このスクリプトのおかげで抜け漏れは捕捉できるんでずいぶんラクになった。
以前、目視確認とか無駄なだけだし、んなもんツール作ってやればいいじゃん、とか言ったら、そしたら仕事がなくなる、目視確認手作業修正は必須だ、と言われて心底、呆れた。
カネをもらった上で、人間の作業=ミスが入り込む原因になる工程を入れるって、いろいろ悪質すぎる。
ITといってもピンキリで、こんなのが入り込んでるから要注意。
そもそも、その程度の仕事なんて、なくなっても問題ないし、特に困らない。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
WiFi接続 インターネットなし
WINDOWS11のノートパソコンがおもての公衆無線LAN、WiFiでネット接続ができなくなっていた。
図書館やスタバのWiFi(ホットスポット?)が使えない。
たぶん今年の5月ぐらいからか(記憶曖昧)
「WiFi接続はされているけど、インターネットなし」という状態
Chromebookでは問題ないし、どうせWINDOWSアップデートのせいだし、そのうちどっかのアプデで治るだろうと放置してたんだけど、さすがにそろそろなんとかせんとなあ、と。
明日、納品の電子書籍があって最終確認作業に、地域活動支援センターを利用。
といっても、広々としたロビーのテーブルを使わせてもらっただけ。ここもWiFiが使えるんで、WIN11のノパソで確認作業が終わったら「インターネットなし」問題。
共有設定がだめなのか、アダプタのドライバが原因なのか、何度もシャットダウンして再起動して、右往左往して。
コマンドプロンプトで接続状況を確認
・Wireless LAN adapter Wi-Fi
↑こいつは接続してるのでokっぽい
・イーサネットアダプター vEthernet(WSL (Hyper-V firewall))
↑こいつが「インターネットなし」にしてるっぽい
…なのでip自動取得ではなく、手動設定でipv4のところを設定
イーサネットアダプタのipアドレス、サブネットマスクを記入したらインターネットに繋がった。とりあえず。
にしても、WiFiに繋ぐたびにいちいちipconfigでアドレスを確認するなんてありえない。
もう一度、IPアドレスを自動取得に戻してみたら、何ごともなかったかのようにすんなり繋がりやがった。もうわけわかめだ。
デフォルトゲートウェイがローカルIPの198.168.0.1(暗号化なし)だったところ、別のグローバルIPになっていたけど、なにか関係があるのか…どうかもわからない。
ネット絡みは、原因の特定がほんとややこしい。何がどう関係してるんだか。
「WiFi接続あり。インターネットなし」になったら
IPアドレスを調べて自動取得ではなくて、手動で設定してみると解決するっぽい。
Defender絡みのアップデートでfirewallの設定でも変わったのかと思いつつ、結果オーライの対症療法。
この地域活動支援センターはほんと気持ちよい空間で、ノートやノパソを広げてる学生くんたち、本を読んでるお父さんお母さん、ボードゲームをしてる小学生たち。
箱モノなんちゃらとやり玉にあげられることが多いけど、ここや図書館などなど、モノ自体はびっくりするほど充実してる。税金なんだし、使わないとねー。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
作業環境の小ネタ
ここんとこネタもない。
在宅仕事、電書制作する時の作業環境の小ネタでもメモっておこう。
ノートパソコン3台を使ってる。
・WINDOWS11のDELL
・ChromeOSのASUS
・ChromeOS FlexのASUS(元WINDOWS10)
どれも作業するのはSDカード上。スクリプトを走らせるのもデータを保存するのもすべてSDカード。
本体に何かあってもSDカードさえ読み書きできれば問題がない。
で、よく考えないまま、作業ディレクトリ名を3台バラバラの名前にしてしまった。
ファイルのコピーをする時にどのノパソからどのノパソにコピーするのか意識できるように、という上書き事故を防ぐためでもあるんだけど…。
同じスクリプトなのに、ディレクトリ名が違うとエラーの元になるので、いちいちそこだけ書き直す必要があって、これはこれで面倒くさいし、スクリプトの先祖返りとか起こしがち。
電書制作の準備段階で走らせるスクリプトが4つぐらい。確認段階で走らせるスクリプトが10ぐらい。これに電書制作のためのスクリプト1つ。epubに梱包するスクリプト、epubチェックをするスクリプト。
ひとつ修正が必要になるたびにノパソ3台にあるスクリプトを書き換えてきた。さすがにアホらしくなったんで、スクリプトを修正したら、それをほかの2台に上書きコピーするだけで終了にする。
bashのシェルスクリプトで対応することにした。
for d in \
'/mnt/usb/_works.inspiron' \
'/mnt/chromeos/removable/USBDrive/_works.vivobook' \
'/mnt/chromeos/removable/USBDrive/_works.cx1101'
do
if [ -d $d ]; then
export LOCALWORK=$d
fi
done
とりあえず。
各ノパソの作業ディレクトリを環境変数に設定。スクリプト内でディレクトリ指定しているところを環境変数参照にした。
SDカードのディレクトリ名を統一するのが本当かなあ、と思ったんだけど、上書き事故が怖いし、なんか苦肉の策。
病院が開くのを待ってたら視線を感じた。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
GBLシーズン18でACE到達
いや。ありえないほどACE到達が難しかった。
いつものシーズンならもうとっくにACE到達だったのに、今季はヤバかった…ていうか前シーズンもヤバかったなあ。
どういうわけかわからないけど、ここんとこ周りのレベルが高すぎる。
技回数をかぞえて、交代受けを当たり前にしてくるし、当然ながらGBL用にポケモン育成してるし。
のんびりまったりやってる爺さんとしてはとてもついていけなくなってる。
まじやばいなあ。
[05/17 08:28:20]
ちなみに初期レートが出たのは3/23で1681。そこから2ヶ月近くかかってる…。モチベーションがあがらなかった、というのもあるけど、スクリプト書きや在宅仕事がらみで余裕がなかった、かな。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
謹賀新年2024
2024年あけましておめでとうございます。
今年も健康で良い年でありますように!
1月1日〜3日までIT蟹工船シフト仕事が入っていたので、今日4日が我が家の謹賀新年。
去年はいろいろ。まるで厄年だった。
午前中に毎年恒例の地元神社に初詣。
二礼二拍手一礼で手を合わせて。
健康でありますように、健康でありますように、健康でありますように、そして良いことがありますように。
最後はもう少し具体的なことをお願いしたんだけど、最初のほうの健康第一は本当に切実。
今年で63歳。すっかりジジイだ。身体を壊したらもろもろ大変だし、家人の方の健康面もやっぱり心配事を抱えてる我が家。
神社でのお願いも真剣になるというもの。
仕事や生活、もろもろ縮小する年になるだろう。
インボイスのせいで在宅仕事を探すのは難しいだろうし。
それでもなんとかなりますように、の神頼みだ。
その後、今年の初映画は『鬼太郎誕生 ゲゲゲの謎』4回目。
いやもう観るたびに違うところで涙腺決壊してる。老人はあちこち緩い。
そんなポンコツですが、
今年もよろしくお願いします。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」