Previous Topへ Next

Terminalを実用に使う/Using Terminal

Terminalを活用する


anchor

起動ディスクのアクセス権を修復するTerminalコマンド〜diskutilコマンドがいろいろ使えて便利

この項目とっくにどこかに書いたと思いこんでいたが、どこにも書いていなかったので今更ではあるけど改めて書く。

Disk Utilityでディスクの修復なんかをメンテナンスでよくやると思う。
システムがなんとなく調子悪くなった時に、長期間これをやっていないのであればこれでその不調が治ることがある。
またそうした不調を避けるために定期的にやっておくべきメンテナンスだと思う。
私の場合月一程度の頻度ではこれを実施している。

今操作しているMacのローカルドライブの場合はそれでいいのだが、サーバーなどにsshのみで接続している場合はどうするか?
画面共有、VNCなどでリモートをとってDisk Utilityで修復…という方法でももちろんいいのだが、サーバーの場合できるだけリモートをとったりGUIの操作をしたりを避けてOSへの負荷を減らしたい。

だからsshで接続しているわけだが、その場合はコマンドを使って同じことができる。
sudo diskutil repairPermissions /

このdiskutilコマンドには他にもいろいろ便利なオプションがある。
例えばボリュームマウント、エジェクトなどの機能。
外付けハードディスクのボリュームアンマウントができなくなった時にコマンドからも試すことができる。

MUTAという名称のUSBメモリ、USB外付けハードディスクなどをアンマウントするコマンド
diskutil unmount /Volumes/MUTA

MUTAというデバイスを探してボリュームをマウントするコマンド
diskutil mount MUTA

MUTAというデバイスをエジェクトするコマンド
diskutil eject MUTA

エジェクトとアンマウントの違いはアンマウントはボリュームへのアクセスを切ってデバイスを取り出す準備をした状態で、エジェクトはアンマウントとデバイス取り出し両方をやってしまうコマンドになる。
USB接続の場合、一度エジェクトでデバイスを削除するとmountコマンドでは再マウントできなくなる。

Mavericks以降Finderからのアンマウント、デバイス取り出しがいまいち不確実で、何度か「不正なボリューム取り出し」の警告を受けてヒヤリとしているのでアンマウント、エジェクトはコマンドでやるという習慣にするといいかもしれない。

これも今更なTipsだけど今まで書いたことがなかったので…





ディスクのアクセス権を修復するコマンド
起動ボリュームの修復はsudo diskutil repairPermissions /でEnter
パスワードを求められる




リムーバブルディスク、外付けハードディスク、USBメモリなどのボリュームをアンマウントするコマンド
MUTAという名称のボリュームならパス記述してdiskutil unmount /Volumes/MUTAでEnter
Fnderでやるより確実のような気がする




アンマウントしたボリュームを再びマウントしたい場合はmountコマンドを使う
デバイス名を直接記述してdiskutil mount MUTAでEnter
デバイスごと取り出したい場合はejectコマンドを使って取り出す
これもデバイス名で記述でdiskutil eject MUTAでEnter
エジェクトが成功するとmountコマンドは効かなくなるので
またマウントしたい時は一度メディアを抜いて接続しなおせばいい



2015年4月25日







anchor

Terminalの履歴をリセットする〜キャッシュを削除する、履歴を復元する〜.bash_historyを削除するhistryコマンドの使用法

Terminalの履歴キャッシュをリセットする方法を探していたら、こちらの記事を見つけた。
コマンド履歴の達人を目指してみる-ザリガニが見ていた...。

ザリガニさんの解説では起動中のTerminalのセッションの間のキャッシュだけを削除できるコマンドがこちら。
history -c

まさにこれを探していたので喜び勇んで実行したところ、キャッシュだけでなく過去の履歴が全部消えてしまった。
そのままTerminalを終了すると削除されたキャッシュで履歴ファイルを上書きしてしまうらしい。
そう書いてあるかw

Terminalの履歴の実体はユーザフォルダの最初の階層の中にある不可視ファイル
~/.bash_history
がその実体だから、これをTime Machineなどのバックアップから復元すれば元の履歴を復元できる。

上書きされても履歴が残るようにするには
history -n
のコマンドを2回実行すればいい。
なぜ2回なのかはよくわからないが、とにかく履歴を残して今のセッションのキャッシュだけを削除できる。





bashのTerminalはカーソルキーの上キーを叩くだけで過去のコマンドを呼び出せる
この機能がめちゃくちゃ便利なのだが最近困ったことがあった
最近ファイル転送でcpコマンドを使って200とか300とかいう数の
ファイルを一気にコピーするコマンドをよく使うようになった
履歴にこれが残ってしまうとそれより前のコマンドが正常に呼び出せない




このTerminalのコマンド履歴の実体はここにある
ユーザフォルダの最初の階層にある不可視ファイル、
.bash_historyに履歴はテキストスタイルで保存されている




これをテキストエディタで開いてこの300のファイルをアップロードするcpコマンドを削除すればいい
いいのだがもうちょっとスマートな方法はないのかなと思っていた
それで最近の履歴を削除するコマンドを探していた




サリガニさんのブログの記事を見て喜び勇んでhistory -cコマンドを試してみた
現在のセッションで実行したキャッシュだけが消えるということだ
ただしこのままTerminalを終了すると削除されたキャッシュで
履歴ファイルが上書きされてしまいすべての履歴が消えてしまう




.bash_historyファイルを見るとサイズが0バイトになって中は完全に真っ白になってしまった




.bash_historyをデスクトップかどこかにコピーしてこうなったら上書きすればいい
不可視ファイルだから普段は不可視ファイルが見えないデフォルト設定にしておけば邪魔にもならない
テキストエディタで編集するよりさらに簡単だがやっぱり泥臭い方法だなぁ…




history -n.bash_historyを再読み込みするということだったので試してみたが
最近のコマンドだけしか読み込まない




もう一回-nのオプションのコマンドを実行したら全部の履歴を読み込んだ
なんでこうなるのかよくわからないけどとりあえず動いた
すっきりと解決とは言えないかもしれないが
とりあえずコマンドだけで履歴のリセット・復元はできた



2015年6月22日







anchor

rsyncコマンドを使ってフォルダごと同期させてバックアップを作りたい…シェルコマンド標準のrsyncコマンドはやはりできる子(追記あり)

外付けバックディスクを集積してRAIDで大容量ボリュームを作ってここにiTunesライブラリをバックアップしている。
その詳細はこちらに書いた。
たくさん転がってるサイズが小さい外付けハードディスクを有効活用する〜ボリュームをひとつにまとめるRAID連結の活用法

それで前々から気になっていたことなのだが、そのバックアップボリュームにiTunesライブラリのコピーを取るのにCarbon Copy Clonerを使っていたのだが、これの定時バックアップの表示がそろそろうざくなっていた。
このアプリ自体は大変優れたアプリで、スケジュールを組めば定時で差分のバックアップも取ってくれるのでフォルダ同期で消えてしまったファイルも復元できる可能性がある。

Time Machineとリダンダンシーを組めば最強のバックアップになるだろう。

でも私のメイン機はMacBook Proなので、指定の時刻にRAIDボリュームを刺していないことも多い。
そうすると「ボリュームが見当たらないためにバックアップに失敗した」「バックアップを開始するか延期するか?」とか何回も聞いてきて、そこが丁寧なのだけど最近ちょっと煩わしくなってきた。

自動じゃなくて手動でバックアップを取るなら愛用のSyncTwoFoldersを使えばいい。

しかしiTunesライブラリともなると大容量だしファイル数も非常に多い。
ならば前から気になっていたrsyncコマンドを使ってみてはどうだろうとふと思い立った。

rsyncは最近20年ほどのUNIXには標準でインストールされているコマンドで、もちろんMacのBSDにも標準でインストールされている。

ただMacの場合少し手間をかけないと使えないという噂を聞いていたので、本チャンテストをする前に実用テストをしてみることにした。

rsyncコマンドの主要なオプションは以下の通り。

-a コピー元のディレクトリを再帰的にオーナー・グループ・パーミッション・タイムスタンプをそのままコピー -l シンボリックリンクをそのまま(ターゲットの指定を変えずに)コピーします。
-o オーナーをそのままコピーします。
-p パーミッションをそのままコピーします。
-r ディレクトリ内を再帰的にコピーします。
-t タイムスタンプをそのままコピーします。
-u コピー元とコピー先を比較し、追加・更新されたファイル・ディレクトリのみをコピーします。
-v コピーしているファイル名やバイト数などの情報を表示します。
-z 通信を圧縮します。
--delete コピー元にない(削除された)ファイルをコピー先で削除します。コピー元とコピー先を同期します。
(参考にしたページ:Linuxコマンド【 rsync 】高速なファイル同期(バックアップ) - Linux入門


このうち重要なのは、タイムスタンプ、グループ、パーミッションなどをすべて元の状態のままコピーしてくれる、他のオプションをほとんど内合したaオプションと、元のディレクトリで削除されているファイルを残さない--deleteオプションで、この二つを組み合わせることで二つのフォルダを完全同期させることができそうだ。

以前に紹介したcpコマンドを使わないのは、rsyncならすべてのファイル・フォルダを毎回上書きするのではなく差分のファイル、ディレクトリだけを上書き削除するので同期が高速だということ、sshに対応しているのでローカルだけでなくネットワーク内の別のリモートホストの共有ボリュームにも同期をかけることができるというメリットのためだ。
さらにシンボリックリンクを使って差分はハードリンクで表示する手製Time MachineTime Capsuleのようなこともできるので将来試してみたいとも思っている。

コマンドはこんな感じ

rsync -av --delete ソースのパス ターゲットのパス
例えばデスクトップのFolderAの中身を同じでストップのFolderBの中に同期したい時には以下のコマンドを打つ。

rsync -av --delete ~/Desktop/FolderA/ ~/Desktop/FolderB

この時にソースのパスの最後に必ず「/」を入れることを忘れないこと。
キャプチャでも説明しているが、このスラッシュを忘れるとFolderBの中に「FolderAのコピー」を作ってしまうことになる。

-aオプションは再帰的に同期ができるはずなのでそのテストも実施。
さらにあちこちで「Macのrsyncコマンドは日本語の扱いに問題がある」との情報を見かけたのでそのテストも実施。

結論からいうと大変良好な結果だったので、早速今晩からCCCを外してコマンドでバックアップする設定に変えようと思っている。





デスクトップにFolderAとFolderBというディレクトリを作って
FolderAの中にtest.txtというテストファイルを作っておく




このFolderAとFolderBというディレクトリを同期させるコマンド
rsync -av --delete ~/Desktop/FolderA ~/Desktop/FolderBを打ってみた




するとFolderBの中にFolderAができるという情けない結果になった
ソースのパスの最後にスラッシュを入れないとこのように
フォルダごとコピーという意味になってしまう




気を取り直してrsync -av --delete ~/Desktop/FolderA/ ~/Desktop/FolderB と打ってみた
-aオプションは元のままに再帰的にコピーすること、-vオプションはそのプロセスを表示すると
--deleteオプションはソースで削除されたファイルはターゲットでも削除するという意味




こうしてちゃんとターゲット内にファイルが作成され
ファイルの中身もちゃんと同じになっている




次に「再帰的に」というのを試すためにソースフォルダの中に
さらにフォルダを作ってその中のファイルもコピーされるかテストした
コマンドは通常カレントディレクトリ内でしか有効でないため
カレントディレクトリ内にあるフォルダの中も同じように(再帰的に)
コピーを実行するのがこのオプションの意味




同じコマンドを打った結果ちゃんとターゲットディレクトリにも
同じフォルダができてその中身もコピーされた




今度は--deleteオプションのテスト
ソースディレクトリで削除されているファイルがどうなるかを見てみると…




この通りターゲットでも削除された




-vオプションはコマンドを実行すると何をやったかをシェルに表示する
この場合ファイルリストを構築したあと、削除されたtest.txt、test2.txtをdeleteしたという記録が残っている
困ったことに.DS_Storeファイルまでコピーしているがこれは別途フィルタリングできるオプションがある
今日は省略するがいずれ後日解説する




ここまでは問題ないのは知っていたのだが問題はここからだ
日本語の扱いを確認するために日本語のファイル、中身も日本語のテキストを作成する




-vオプションで表示されたコピーファイルは
エスケープされた日本語ではなく文字コードで表示されている




これが文字化けしてうまくいかないのでは…という予想に反して
実際にはファイルも問題なくコピーされ中身もちゃんと日本語を保っている




そこで今度はUTF-Mac問題の元凶の「渡邊さん」の文字と
濁点を含んだファイル名と内容にしてみたがやはり問題なくコピー




そこで今度はフォルダ名称に「渡邊さん」と濁点を使用してファイル名も内容も同様にした




この通り文字コードをたくさん吐き出して文字化けしているように見えるのだが…




やっぱりちゃんとコピーした
評判ではMacのrsyncコマンドはバージョンが古いため日本語の扱いに問題があるという噂だったが
少なくともMacのローカルまたはリモートホスト間のコピーに関しては問題はなさそうだ




いっそソース・ターゲットのフォルダ名も日本語にしてしまうと
パスの記述も日本語になるがそれでもうまくいくのか試してみた




コマンドはrsync -av --delete ~/Desktop/フォルダ元/ ~/Desktop/フォルダ先のようなことになる




これも予想に反して問題なく同期した
OS Xのrsyncが改善されたということなのだろうか…
それともMacに日本語をしゃべらせるテストなど色々したせいで
私の環境だけこうなのか確認中だがどうもこれは関係なさそう
Macでもできるということらしい




となると実戦テストに移行する
iTunesライブラリの中にあるiTunesで作成したmp3、aiff、
mp4、movなどのうち日本語ファイル名のものを同期してみる




rsyncはとにかくコピーの速さに驚かされる
そしてもうプロセス表示は何が何だかわからない…




…のだがこの通りちゃんとファイルはコピーされ音楽ファイルは再生もできるだけでなく
この通りID3タグなどのメタデータもしっかり保持している
ウワサと違う理由はよくわからないがちゃんとできるということが判明した
rsyncコマンドの最大のメリットは何よりも同期が高速だということだから
これから大いに大容量フォルダの同期に活用したい



<追記>

リモートホストのサーバーにインターネット越しにフォルダ同期する実験にも成功した。
弊サイトは自宅サーバーを立てて
http://nmuta.dip.jp/
にもミラーリングしてバックアップにしているが、サイトを外で更新した時にこれにVPN経由で接続して更新するのが今までかなり困難だった。
もちろんVPNなのでファイル操作はできるのだが、出先ではほぼWiMAXからの接続になるので回線が低速なのは仕方がない。

サイトの更新を反映するためにSyncTwoFoldersを使うと下手すると更新完了に数時間かかる。
ところが今しがたrsyncコマンドを使ったところ、なんと10分で更新が完了してしまった。
さすがsshを使って圧縮した通信で差分同期するコマンドだけのことはある。

コマンドはまずVPN接続、相手先ボリュームをマウントしておいて以下のように打つ
rsync -avz --delete ~/Desktop/FolderA/ 相手先アカウント名@相手先ホスト名(またはIPアドレス):~/Desktop/FolderB

例えば相手先アカウント名がhiiragiでIPアドレスが10.0.1.2なら
rsync -avz --delete ~/Desktop/FolderA/ hiiragi@10.0.1.2:~/Desktop/FolderB
となる。

これで手元のデスクトップのFolderAと相手のデスクトップのFolderBをインターネット越しに同期できる。
オプションのzは通信を圧縮するという意味。
VPN自体が秘匿された通信で、その中でさらにsshで圧縮された通信を実行しているので安全で軽快な通信になる。





今回はWebサーバーの更新なのでパスは/Library/WebServer/Documentsとなる
相手のIPは10.0.1.205でルートマッピングしてあるのでコマンドは
rsync -avz --delete ~/Sites/ hiiragi2@10.0.1.205:/Library/WebServer/Documentsとなる
接続に成功したらsshのパスワードを要求される
タイムスタンプのセットはなぜかアクセス権がないと拒否されるがそれ以外は問題ない




出先からの更新が困難だった自鯖のミラーリングサイトも10分程度で更新できるようになった
rsync強力だ




更新に伴い差分だけを追加したり削除したりのプロセスも確認できた



2016年8月11日







anchor

Macの起動時の画面をデバッグ用に変える〜verboseモードを設定するコマンド・解除コマンド・ステータス表示コマンド

Macの起動時にはグレーのリンゴのマークが表示されて、ギヤアイコンがぐるぐる回る。

Macは昔からユーザにはバックグラウンドのコードの動きを悟らせず、視覚的な効果でプログレスを理解させるというUIの考え方がある。

しかしつとに知られていることだが、MacはOS Xから独自カーネルを捨ててBSD UNIXのカーネルに積み替えた。
BSDに限らずUNIXやLinuxなどのPOSIX互換のOSはみんな起動時にCUI画面で「今何をしているのか」をリアルタイムで表示するのが普通だ。
Macだけがリンゴのマークですべてを隠しているのはとても変わっているというべきだ。

MacもBSDがベースである以上、他のUNIXと同じようにCUIの起動画面を表示することができる。

何がいいかというと、起動時のトラブルシューティングの時に何が異常かがわかりやすい。
ギヤアイコンをぐるぐると回したまま止まられるよりも、CUIで何の読み込みに失敗したとかエラーを表示してくれる方がトラブルの原因に早く到達できる。

このCUI画面で起動するのをverboseモードというが、臨時的にverboseモードで起動したい時には
コマンド+Vキー
を押しながら起動すればいい。
文字画面が出たらキーを離して、あとは起動時のプロセスを見ることができる。

verboseモードが例えば何の役に立つのかはこんな時…
MavericksになってからOSの終了/再起動に失敗する問題に対応(できたかな?)〜はたしてdaemonのタイムアウト値を変更して改善するか!?<加筆あり>


それで慣れてくるとむしろMacデフォルトのリンゴマーク+ギヤアイコンぐるぐるを見ていると逆に不安になってくる。
それよりは今は何をやっているのか、ちゃんと読み込みは進んでいるのかを表示してくれた方が安心だ。
だからパーマネントにverboseモードに設定したい。
Deeperで設定することができることは以前にも書いたが、リモートだったりバージョンの問題でこれを入れることができない場合は、Terminalのコマンドでモードを有効にすることもできる。

verboseモードを有効にするコマンドは
sudo nvram boot-args="-v"

無効にするコマンドは
sudo nvram boot-args=""

またはNVRAMをリセットするためにPRAMクリアまたは
NVRAMクリアの手順を実施する。

モードが有効になったかどうかはこのコマンドで確認できる。
nvram -p





NVRAMのパラメーターを書き換えるnvramコマンドは
root権限が必要なのでsudoまたはsuでrootになって実行する
sudo nvram boot-args="-v"でEnterするとrootのパスワードを求められる




モードが有効になったかどうかはnvram -pで確認できる
最後の行にboot-argsのオプションに-vと表示されたら有効になっている
すると何もキーを押さなくても起動画面が口絵のようなCUI画面になる




この設定はDeeperのような専用アプリを使用しても変更できる
これが使用できない事情がある場合は上記コマンドが役に立つ




家中のMac、Macで立てているサーバーすべてverboseモードにしようとしたが
TigerのiBookG4、Mac miniG4ではDeeperがバージョン的に動かない
こういう時にこのコマンドはこの古いMacでも動く



2016年9月14日








anchor

Terminalでたまにしか使わないコマンドを簡単なスニペットですぐに呼び出せるaliasコマンド(追記あり)

bashでは良く使うコマンドを簡単な文字列で代用してすぐに入力できるエイリアスというコマンドがある。

Linuxのサバ管なんかはネットワーク診断のコマンドなんかをパッと実行するためにコマンドのエイリアスを作っておくんだそうだ。
幸いMacのTerminalも大部分のLinuxのシェルと同じbashなので同じことがMacでもできる。

シンタックスはこんな感じ。
alias 省略コマンド='代用したいコマンド'

例えばマウントしているaというボリュームをbというボリュームにミラーリングしたい時にrsyncコマンドはこんな感じ。
rsync -avz --delete /Volumes/a /Volumes/b
これをrsync1という短いコマンドで実行したい時には
alias rsync1='rsync -avz --delete /Volumes/a /Volumes/b'

これを一度実行しておけば次回からrsyncのオプションとかターゲットパスとかをいちいち入力しなくても同じことができる。

rsyncに限らず他のコマンドでもエイリアスを作成できる。
エイリアスを削除したい時には
unalias =rsync1
と打てばいい。

代用するコマンドが特にオプションもターゲットもないlsみたいなコマンドならば前後をくくるシングルクォートは必要ないかもしれないけど、オプションがいろいろつくとエラーになるのでシングルクォートで前後をくくるのは習慣にしておいたほうがいい。





aliasコマンドを使ってたまにバックアップで使用するコマンドを代用できるようにする
メインバックアップのSeagate2TBという外付けボリュームを
予備バックアップの2TBUというボリュームにミラーリングするコマンド
rsync -avz --delete /Volumes/Seagate2TB/ /Volumes/2TBU
これをrsync1という短いコマンドで実行できるようにする
alias rsync1='rsync -avz --delete /Volumes/Seagate2TB/ /Volumes/2TBU'と打ってEnter




次回からはrsync1とだけ打てばこのバックアップ作業はできるようになる
頻繁に使うコマンドはカーソルキーで履歴を呼び出せばいいが
月に一回ぐらいしか使わないコマンドは履歴を遡るのが面倒くさい
特に長いコマンドをたくさん使った月はとても面倒くさい
ならばたまにしか使わないが決まって使うコマンドはこうしてエイリアスにまとめてしまうと便利




こうしてrsync1、rsync2、rsync3…というふうに決まったコマンドを昇順にまとめてしまえば…
ますます頭を使わなくなるなぁ…




ところでシングルユーザモードで使用するAppleJackは最近のOS Xではパスが
通せなくなっていてシェルバイナリをパス込みで入力しないと動かなくなっている
シングルユーザモードでもbashの履歴が使用できるので支障はないがエイリアスを作って
「applejack」と打ってAppleJackを実行できるようにならないかやってみた
suでrootになってaliasコマンドでapplejackのエイリアスを作成




その結果AppleJackのエイリアスを作成することには成功したのだが
rootでは動くのにシングルユーザモードでは動かない
最近のMacのセキュリティではrootとシングルユーザモードも切り離されてしまい
シングルユーザモードのプロファイルは編集できなくなってしまった
残念!

【追記 1/3】
MacのTerminalのシェルの場合上記のaliasコマンドを打っただけでは環境変数に追記はされず、Terminalを起動している間はエイリアスは使えるが、Terminalを一旦終了すると次回起動後にエイリアスは残っていないことが判明した。

これがbashの仕様のようでbashrcに追記しないといけない。

bashrcの場所は以下
/etc/bashrc
以前に実行したコマンドの履歴は、以下の.bash_historyファイルに記述されている。
~/.bash_history

この履歴に記述されてるaliasコマンドをbashrcに転記すればエイリアスコマンドは永久に使用できるようになる。
このbashrcの記述変更はroot権限が必要なので、rootでviを開くかGUIでrootでログインすればいい。





rootでログインしてbashrcファイルをテキストエディタで開く
場所は/etc/bashrc




これに~/.bash_historyからaliasコマンドを打った履歴を転載する
すると次回からTerminalでエイリアスコマンドが使用できる


この記述でシングルユーザモードの問題も解決するかと期待したが、これはやはりダメだった。
整理するとこういうことらしい。
各ローカルユーザ、rootもそれぞれのユーザフォルダ、rootフォルダの中にある.bash_historyに記述された履歴を呼び出す。
etc直下のbashrcは全ユーザ共通の環境変数。
Terminalを起動すると.bash_profileの指示によりシェルはbashrcを読み込んでそこに記述されたエイリアスなどのカスタムの変数を読み込む。
シングルユーザモードはrootと同じ.bash_historyを読み込み履歴は共有できるが、.bash_profileを共有していないためにetc直下のbashrcに変数を追記してもそれを読み込まない。
そしてシングルユーザモードの.bash_profileはどこにあるのか、そもそも存在するのかどうかも今のところわからない。 相当探しまくったけど見つからないし、見つけても例のroot権限でも書き換えられないアクセス権で守られている可能性がある。
これがシングルユーザモードに脆弱性があると指摘されたMacのセキュリティ問題の、Appleの回答ということらしい。
おそらくシングルユーザモードでAppleJackをそのまま使えなくなったYosemiteからの仕様変更と思われる。

ともあれこれで通常のTerminalでたまにしか使わないコマンドのエイリアスを常備できるようになった。




2018年1月2日







anchor

iBookを再インストールしたらSSHで接続できなくなった〜RSA FingerPrintが違うというエラーが出て接続できなくなるのは第三者攻撃を防ぐ安全策・その打開法

PowerPCのiBook G4をSSD化した話には後日譚がつく。

といっても別にSSDが悪いわけではない。
SSDは極めて快調で、PowerPCのiBook G4はIntelMacに遜色ない…というのはかなり言い過ぎだがG4時代の遅さはかなり改善された。

特にアイコンジャンプ一回でアプリが起動する様は感動的ですらある。

それはいいのだがiBookをクリーンインストールした影響なのだろう。
SSHで接続できなくなってしまった。

このエラーは実はセキュリティのための安全措置で、SSHの接続をすると初回に遠隔操作される側からRSAキーをリモート側に渡される。
初回接続の時に確かにそういう警告が出る。
このキーが以前と違うキーだと「サーバーを詐称する別のデバイスによる第三者攻撃の危険性がある」としてこれを排除する。
要するにそういう詐称でパスワードや重要情報を抜き取るサイバー攻撃からクライアントを守るための防御策なのだが、サーバーを再インストールするともちろんこのキーも更新されてしまうのでSSH接続もできなくなってしまう。

この時にどうするかというと、簡単な方法があった。
こちら側のRSAフィンガープリントを削除すれば良いだけだ。





Webサーバーとして使用していたiBook G4は結局
クリーンインストールしたのでWebサイトも全部消えてしまった
そこでrsyncコマンドでバックアップからコピーしようとしたが
SSHを使用するので認証エラーが出てしまった
『注意:リモートホストの認証が変更された
誰かから第三者攻撃を受けているかもしれない
リモートホストから受け取ったRSAキーの
フィンガープリントは****である
サーバー管理者に問い合わせよ/このメッセージを回避したい場合は
正しいキーを~/.ssh/known_hosts:2に追記せよ』
という内容の警告が出る




このRSAフィンガープリントはここに記録されている
不可視ファイルを表示する設定にするとユーザフォルダ直下に
.sshというフォルダがありその中にknown_hostsというファイルがある
これをviやテキストエディタなどで開くとそこに過去に接続したホストの
認証情報が記録されておりこれを削除すればいい




認証情報が削除されると初回接続した時と同じく
『ホスト***.***.***.***(IPアドレスまたはホスト名)の接続は成立しなかった
接続継続するかどうかをyes/noで入力せよ』
と表示される
これを一回やっておけば次回からは今までどおりパスワードだけで接続できるようになる



2018年2月20日







anchor

トレースルート(traceroute)ってどうするんだっけ?〜いっつもど忘れするのでメモ残しとく…

ネットワークに障害が起きた時にどこで問題が起きているのかを確認するトレースルートというコマンドがあって、基本的なコマンドなんだけど、これがいっつもごっちゃになってとっさの時に「あれ?トレースルートが動かない??」となるシーンが先日もあった。

いや、私がちゃんとしっかり覚えて使いこなせば何も問題がないのだが、MacというかUNIXとWindowsのコマンドが微妙に違うために毎回ごっちゃになってしまう。

あれ?どうだったっけ?という時のためにちゃんとメモを書いておく。

ていうか、前にも書いた気がしたが、その記事が見つからないので改めて書く。





MacのTerminalでトレースルートする時のコマンドはtraceroute
GoogleのDNSサーバーの8.8.8.8にtracerouteした結果




同じコマンドだがWindowsではtracertと打つ
ターゲットなどの使い方は同じで結果の表示もほぼ同じ




どうせコマンドをパクるなら同じにしてくれればよかったのに
微妙に変えてあるからいつも頭がこんがらがる
特にWindowsでネットワーク診断をする時によくこういうポカをする
そして「あれ?根本的にネットワーク死んでる?」とかパニクったり
メッセージしっかり読まんかい…というミスを先日もやったとこなのでメモしとく



2020年4月12日














Previous Topへ Next





site statistics