2014年4月9日水曜日

sshアクセスの公開鍵認証設定をやっと

参考にさせてこちら様。
http://www.kishiro.com/FreeBSD/ssh.html

まずサーバ側。

/etc/rc.conf
ここでのsshdの有効化はOSのインストール時に設定済み。

/etc/ssh/sshd_config
sshdの設定内容は、

ポート番号22
プロトコル2
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

デフォルトの記述をもとに、この4点を変更。と、今の今になってやっと、vi中の検索/と?とnを使った。知らないとは愚か、って当たり前か。


sshdの基本設定が終わったら次は鍵生成。

# ssh-keygen -t rsa

これを実行するも、-tの意味がわかっていない愚かさ。

Generating pubulic/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

と入力を求められるが、ここは幼稚な "じっけん" 環境なのでデフォルトのまま。続いて

Crated directory '/root/.ssh'.
Enter passphrase:

パスフレーズの入力と再確認。

Your identification has been saved in /roo/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ほげほげ
The key's randomart image is:


次に、authorized_keysファイルの生成。ここでは流し込みでcat >>。


サーバ側はとりあえず一段落、続いてクライアント側。

参考にさせていただくのはこちら様。
http://park1.wakwak.com/~ima/freebsd_sshclient.html


...がしかし、サーバとクライアントで秘密鍵をクライアント側に渡す手段が無いので、ここでNFSの設定をはさむ。

これまで何度も、浅はかな読み方しかしなかったばかりに痛い目をみた公式ハンドブック。
http://www.freebsd.org/doc/ja/books/handbook/network-nfs.html


sshサーバ側をNFSサーバに設定するために。

/etc/rc.conf
portmap_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"

 /etc/exports を作成してファイルを受け渡す最小限の1行だけIPアドレス指定で-ro

で、mountdのプロセスをkil...と思いきやハンドブック中には

# kill -HUP `cat /var/run/mountd.pid`

なーるほど、こんな表現方法があるんですね。などと感心するのは身の程知らずもお門違いで、ここでハンドブックの記述がバージョン4以前のそれだと気づく(遅すぎる&バカ過ぎる)。よって、portmapの記述をrpcbindに変更。そしてサーバ、クライアントともにデーモンを起動していざ接続するも結果が


RPC: Program not registered


はい、お約束です。

・他人様の設定例を忠実に再現しても、マトモに動作しない。
・公式資料の設定例を忠実に(同上)

いえ、ネット上に転がっている "どこの馬の骨とも知れない勝手公開なネタ" がうまくいかないからってそれはそれ。が、


 忠実に再現しているつもりが
 多々誤読/見落とし/誤認識/記述ミス

で失敗しまくるというオヤクソクです。御約束でなければ自業自得、あるいはバカ露呈というだけかもしれません。


そして、

-maproot=root

を記述していないことに気づき追記。そして service nsfd start ではなくrebootという短絡行動。

しかし、NFSのアクセスはNG、ターミナル上は Permission denied。実際どこではじかれているかシーケンスを追ってみると、

Mount service
Status : ERR_ACCESS


で追記以前と変わらず。そこで、/etc/exports でIPアドレス指定をホスト名に書き換える。も、やはり変わらず。むしろ、hosts に記述していないので bad host 扱いされるぐらい。IPアドレスでの記述に戻す。そして此方様を読んで
http://www.seichan.org/wiki/index.php?FreeBSD-NFS

 /var/log/messages

に何が書かれているかの断片を知る。これまで見ていなかったことが愚か過ぎる。道端に落ちているコンビニの不味い弁当に飛びついて食らうぐらいの愚かさ。

底なしの愚かさはさておいて、messageseの内容から推測できることは、/etc/exports の記述を誤っているらしいこと。-maproot=rootの記述位置を修正、IPアドレスはホスト名に修正、このファイルでホスト名を使用するのでhostsに追記。これで、/etc/exportsに記述した片方はアクセス可能となっていたはず、だが、もう一方のNGに気を取られ、状況理解を誤る。この、NGである方の根本的な理由は未だ不明。


とりあえず鍵の移動ができたので、sshアクセスの設定に戻る。しかし、設定ファイルと秘密鍵を取り違え、愚かな徒労を重ねる。そして取り違えのマヌケを修正した後も、password: が通らず。ここでそもそもrootでアクセスすることの暴挙にやっと気付き、sshd_configの PermitRootLogin を yes に変更しようとするも、なぜか上書きNG!??? サーバをリブートして強制?解決。しかし、rootでのアクセスを明示的にyesに変更しても依然としてPasswordが通らない。よく考えればここでsshd_configを再読み込みしなければ動くわけがないのだがアタマの弱さもあからさまにさらにリブート。


で、ようやく公開鍵認証でのsshアクセスが可能に。


そもそも秘密鍵のパスフレーズの後にPassword:を求められる時点で挙動がオカシイということか、とは邪推の極み。そもそも、rootでアクセスするような異常手段でなく、通常の設定を試さないことにはどうにも。



余談

ifconfig wlan0 up scan でつながる不思議も、おそらくきっとたぶんくだらない錯綜なのだろう。

0 件のコメント:

コメントを投稿