SSHの基礎知識?
telnet時代はしばらく前に終わり、セキュリティの強化されたSSHが使えるようになっています。SSHは、公開鍵暗号を使い認証をすることができ、通信経路も暗号化されます。inetd.conf の 22番ポートを開けるだけなんですけどね。
んん、chkconfigでsshdを起動するようにしておくほうがいいのかな・・・?
サーバを立てるときなどは、telnetにセキュリティホールが見つかっていることなどもあり、telnetdを使えないようにしてSSHに変えておくと良いようです。
rootにはパスワードを設定します。
ひとり管理者の場合はアプリ、daemonのアカウントにはパスワードを設定してはいけません。root経由で使う方が安全です。sshからログインできなくすれば問題ないかもしれませんが。
パスワードを使うのはもうやめましょう。最終的にはすべてのアカウントのパスワードを無効にします。
ユーザのアカウントには公開鍵のみでパスワードは、ない方がいいですが初期設定は必要かもしれません。
初期段階はとりあえずユーザ→root→アプリアカウントで管理します。
SSHの初期状態では、リモートからもrootアカウントで直接ログインできるなど、あまり安全ではない設定になっています。
この設定を変えるには、/etc/ssh/sshd_config をいろいろと変更します。
# root のリモートログインを不可にする (推奨)
PermitRootLogin
no
# パスワード認証を不可にする
PasswordAuthentication no
PrtmitRootLogin の設定には、次のようなのがありました。
他1つ、5つぐらい見かけました。
設定が終われば
# service sshd restart
で再起動すればいいのかな。
[SSHの基礎知識]に書いてます。
$ ssh -l account servername [ -p port ]
で、とりあえず目的のサーバに接続することが出来ます。
最初の接続では、キーをどうするか聞いてきます。
SSHには、SSH1とSSH2の2種類のプロトコルががあります。
sshの接続先をサーバ、接続操作をする方をクライアントと呼びますよ。両方サーバでも関係上そう呼びます。
公開鍵はID(複製可能な証明書、印影)、秘密鍵は印鑑/会員証、のようなものです。
基本的に、「クライアント側で」秘密鍵/公開鍵を生成して、公開鍵をサーバ側にコピーしましょう。
不用意にサーバ側で作って漏れてしまったりしないようにしましょう。
公開鍵は他人に見られても大丈夫です。秘密鍵は誰にも見せる必要がありません。サーバ側に置く必要もありません。
PuTTY | OpenSSH | 概要 | ||
---|---|---|---|---|
DSA | RSA | |||
秘密鍵 | *.PPK | ~/.ssh/id_dsa | ~/.ssh/id_rsa | クライアント側で必要(パスワードで保護する) |
公開鍵 | *.pub | ~/.ssh/id_dsa.pub | ~/.ssh/id_rsa.pub | クライアント側公開鍵 |
信頼 | ~/.ssh/authorized_keys | サーバが信頼する相手の公開鍵の一覧 | ||
~/.ssh/known_hosts | 信頼した接続相手PCの公開鍵 |
最初に、秘密鍵と公開鍵のペアを作ります。この2つの鍵は、サーバ側とクライアント側で別々に管理します。秘密鍵は、他人に知られないようにパスワードをかけて保護します。サーバはこの鍵を使って利用者を認証します。
id_rsa.pub の中身(1行)をサーバ側の ~/.ssh/authorized_keys に追加します。
メモ程度に
IETF SECSH key file
-----BEGIN SSH2 PUBLIC KEY-----
Eclipse CVS
Dreamweaver + PuTTY
ssh-agent を起動させると、export うにうにが表示されるので、そのまま入力して環境変数を設定します。
ssh-add で、パスワードを一度入力すると、次からは同じパスワードを入力せずに済みます。ssh-add -l で一覧を見ることができ、ssh-add -d で消すことができます。 ssh-agent を終了させると使えなくなります。ssh-agentはユーザごとに1つ起動します。
ssh-agentを使うことで、cvsなどの利用が楽になります。
sshで利用可能になったら、パスワードは無効にしておくのがいいかもしれません。
管理者(root)で
# passwd -d アカウント
を実行するとアカウントのパスワードが無効になります。sshの鍵がないと入れなくなるのでおすすめです。
rootのパスワードも無効にすることができます。sshかsudoでrootになれる環境がある場合だけにしてください。su -ではパスワードが必要ですね。
参考