しいしせねっとわーく
[ネットワーク編] [Linuxメモ] [SSL/TLS/PKIの基礎知識] [SSHの基礎知識]

Linux SSHメモ

SSHの基礎知識?

telnet時代はしばらく前に終わり、セキュリティの強化されたSSHが使えるようになっています。SSHは、公開鍵暗号を使い認証をすることができ、通信経路も暗号化されます。
Vine LinuxではOpenSSHがそのまま使えるようにインストールされているようなので、サーバ側の設定、クライアント側の使い方など?

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

で再起動すればいいのかな。

Windowsクライアントからの接続

[SSHの基礎知識]に書いてます。

Linuxのクライアントを使う

$ 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つの鍵は、サーバ側とクライアント側で別々に管理します。秘密鍵は、他人に知られないようにパスワードをかけて保護します。サーバはこの鍵を使って利用者を認証します。

鍵の生成(Linux OpenSSHの場合)

  1. ssh-keygen -t rsa (鍵の種類を指定する?)
  2. ~/.ssh/id_rsa が秘密鍵 ~/.ssh/id_rsa.pub が公開鍵

id_rsa.pub の中身(1行)をサーバ側の ~/.ssh/authorized_keys に追加します。

鍵の変換

メモ程度に

IETF SECSH key file

-----BEGIN SSH2 PUBLIC KEY-----

SSHの使えるソフト

Eclipse CVS
Dreamweaver + PuTTY

ssh-agent で自動ログイン

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 -ではパスワードが必要ですね。

参考


[しいしせねっと]