通常FTPやTelNETのネット回線を利用したサービスは暗号がされない平文のまま、インターネットをパスワード等を含み流れていきます。
こういった状況ではパスワードを盗まれ、悪用されるというリスクが常に付きまといます。
ここで出てくるのが「SSH」です、これは色々な場所で今までに使ってきた通信技術を暗号化した安全な状態で提供してくれます。
ここではSSHを利用したLinuxの遠隔操作方法を解説します。
まずはインストールから
「yum」の場合
「apt-get」の場合
簡単ですね~(笑)
「Debian」系は基本的に再移動後、自動的に起動します。
「RedHat」系は以下のコマンドを実行します。
# service sshd start
SSHサーバの準備が出来ましたら、クライアント側よりリモートログインをしてみましょう。
コマンドは以下の通りです。
この直後に「yes」と入力し、「ログイン先ユーザー」のパスワードを入力します。これでホスト認証によるログインが完了し、ユーザー名及びホスト名が変わります。リモートを解除するには「exit」と入力します。
次は「ホスト認証」だけでは心許無いので、「ユーザー認証」を行えるようにします。
「ユーザー認証」を行う為にクライアント側、ユーザー別に「鍵」を作る必要性があります。
ここでは「RSAアルゴリズム」に依る「公開鍵暗号方式」の鍵を作ります、
この方式は一人が「閉める(暗号化)鍵」と「開ける(復号化)鍵」の二つを持ちます。例えばAさんがこの状況で「閉める鍵」は世界にばら撒いても第三者は鍵を閉める(暗号化する)事しか出来ません。それを開けれるのは「開ける鍵」を持つAさんだけです。
また、Aさん「開ける鍵」は安全性をあげる為、盗まれても大丈夫な様に、使う時に「パスフレーズ」(パスワードと思えば良いです)が求められますのて、第三者は簡単に使えません。
以下のコマンドと操作です。
—-(/home/<ユーザー名>/.ssh/id_rsa): ←「Enter」キー
—-(empty for no passphrase): ←「パスフレーズ」を入力
—-Enter same passphrase again: ←「パスフレーズ」を再入力
これで「/home/<ユーザー名>/.ssh/」内に鍵が出来ます。形式としては以下の状態です
id_<アルゴリズム><.pub>
<アルゴリズム>は認証方式です、「rsa」と入っていればRSA認証、「dsa」ならDSA認証となります。(DSAは共通鍵方式で良く使われ、お互い同じ開け閉めの出来る一つの鍵を持つ方式、プライベート性が高い。)
<.pub>が二つペアキーの内の一つに付いています、これが付いている方が「公開鍵」上で言う「閉める鍵」です、付いてない方が「秘密鍵」、「開ける鍵」です。
リスク回避の為にも「秘密鍵」は厳重に管理して下さい!。
次にクライアント側の公開鍵をSSHサーバに登録します。公開鍵ですので、メ-ルやフロッピーなどで渡しても問題になりません。コマンドを使う場合は、折角ですから以下の回線を暗号化した方法で移してみましょう。
この後パスワードを入力しますとコピーが始まります。
次にサーバ側で上記のユーザーでログインしている状態で以下のコマンドを実行します
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
これでクライアンド側の「公開鍵」は登録され、サーバの「./ssh」と「./ssh/authorized_keys」は第三者に扱われては困るので、所有者のみが書き換え可能に権限を変更、設定は完了です。
クライアント側よりリモートログインをしてみましょう、コマンドは以下の通りです。
「パスワード」の代わりに「パスフレーズ」を聞いて来ますので入力します。
最後にセキュリティ性を上げる為の幾つかの設定方法を紹介します。扱うファイルと設定項目を下記にまとめておきます。
「パスワード認証」の禁止
↓
PasswordAuthentication no
「root」ログインの禁止
↓
PermitRootLogin no
「ホスト」のアクセス制限
sshd:127.0.0.1 ←(必要な場合)
「SSH用ポート」の変更
Port *** ←(空いているポート番号に変更)
設定項目を変更しましたら、SSHの再起動を忘れないで下さい。