SSHの話

 LPICを勉強していて、あれ?SSHのこと執拗にやるな、と感じていました。で、その理由を考えてみました。
 LPICレベル1では、小区分で101と102に分かれ、101がLINUXというOSについて、102はLINUXが利用するネットワークやSQLなどの基礎知識が問われます。Pythonで例えると、4章まではプログラムで記述する内容で、4章以降はモジュールやオブジェクト指向といった、インタープリタから離れた知識中心になるような感じです。
 101の、全くよく知らねえコマンドに、他と全く変わらねえオプション(-aの多いこと多いこと)でボロボロにされている中、102のセキュリティやネットワークはオアシスのような存在です。ネットワークスペシャリストたる私にとっては、/28のサブネットのネットワークアドレスを表記するなんて赤子の手をひねるようなものです。また、情報処理安全確保支援士(未登録)たる私にとって、SSHは、あれ、SSHって何でしたっけ?
 いやあ、IPsecやSSLはIPAで頻出なんでよく知ってるんですがね、あんまりSSH使うタイミングもないしね、そもそも日常業務ではローカルからのアクセスは一応コンソールポートからのターミナルっつーエアギャップありなんで充分なセキュリティ条件をクリアしたうえで敢えて復旧時間優先でTELNET使ってるし(早口)、と長々と言い分けが終わったので、浅学を恥じるダメージは十分に軽減できました。バフを積んだので、SSHです。これを学び直しましょう。
 SSHは、Secure SHellです。そう、セキュアなシェルです。私が今勉強しているLINUXでは、頻繁にbashと出てきますがBourne Shell(sh)に機能拡張したシェルです。Bourne again Shell(bash)の例のアレです。

例のアレ

 このアレをセキュアな形でお渡ししよう、というコンセプトがSSHと言えます。
 兎にも角にも、首を切るのもシェルの拡張版がSSHと言えましょう。
 シェルを実際に操作しているのは、(実行環境が仮想だったとしても)入力にはLINUXに直接キーボード接続して、出力にはディスプレイを直接配線している自分です。その上で、「df」やら「cd」やらをLINUXに指示しているに過ぎません。単純にPCを操作している中年がそこにいるという、シンプルかつ絵にならない構図です。
 そして、上記の操作を、ネットワーク上からも可能になるのがSSHです。 
 ただし、ネットワーク上から操作するのは「誰でも」であっては困ります。この場合、「誰か?」は常に問われなければなりません。この問いかけがSSHの頭のS(セキュア)であり、より正確に言えば、「認証」と呼ばれるセキュリティの要素となります。 
 なので、考え方としては、有線LANと無線LANのものとほぼ一緒と考えても良いでしょう。そのどちらもが、データリンク層の技術です。そのフレームをつぶさに覗けば、宛先と送信元にMACアドレス使っているだけの、TTLがないのでループを引き起こすだけのイージー・レイヤーと言えます(舐めプ)。しかし、物理配線が必要な(ネットワーク機器に直接配線しないといけない)有線に比べて、キャッチできれば誰でも接続可能な無線は、フリーライドや侵入といった悪いことに適しています。この為、無線LANはその対策として接続用のパスフレーズを決めたりして「認証」を掛けます。
 突き詰めれば、この「認証」がことの本質とも言えましょう。
 バッシュ使いたかったら、「認証」クリアしてみんさいよ、がSSHの骨幹です。誰でもは、困るきね、という訳です。教科書みたいに分類すると、1-2「パスワード認証」か1-3「公開鍵認証」のいずれかになるという訳ですね。1-1はもちろんSSHとは?になります。
 認証の要素としては、もっともラクチンな「生体」認証が存在しますが、いつまでたってもテキスト操作ではviを強要する敷居の高い(誤用)LINUXにはそんな高尚なものありません。/etc/ssh/sshd_configの中で記述可能な操作のみを受付しますよ、とストロングスタイルです。。
 そして、その中身は、パスワードはもう説明は不要でしょう。このご時世だったら肌感で理解できる知識を問う認証である「パスワード」認証です。もう一つが「公開鍵」認証です。
 パスワードが共通鍵認証に対して、ちょっと難しそうですが、「公開鍵」は公開鍵です。その利用に前もって設定したパスフレーズを使うとはいえ、計算に複雑さを要するだけです。その計算が最終的には元に戻るからくりを要求しているだけとも言えます。その点に関しては、どちらも問題なく知っている人間を「認」め、「証」ているわけです。
 よって、SSHに関しての要点は、認証においてのみと言えます。公開鍵と秘密鍵を逆転させれば、ホストとクライアントの認証が逆になる点も含めて、そこまで複雑な点は問われますまい。
 SSHは、遍くシェルの利用についての是非と言えましょう。

 


この記事が気に入ったらサポートをしてみませんか?