*sshのインストール
#contents

**インストール
-リモートからとりあえず作業ができるように導入。
 # aptitude install ssh
これでクライアント(ssh)とサーバ(sshd)が利用できる。
-デフォルトではrootでもログインできるようになっているので、これを禁止。一般ユーザでログインしてsuすべき。
--設定ファイル:/etc/ssh/sshd_config
<pre>
PermitRootLogin &color(red){without-password};     パスワードログインを禁止
</pre>

**アクセス制限(TCP_Wrapper)
-最近、sshdに対するポートスキャンが増えている。
--設定ファイル:/etc/hosts.allow (アクセスを許可するサービス名と接続元IP)
 ALL : 192.168.XX, 127.0.0.1
 sshd : 192.168.XX              &color(green){# 192.168.0.0/24からのアクセスを許可};
--設定ファイル:/etc/hosts.deny (hosts.allowに該当しなかったものは全て拒否)
 ALL : ALL

**パスワード認証
-パスワードを用いたログイン方式
公開鍵と秘密鍵の鍵ペア用いてパスワードを受け渡す。
「公開鍵で暗号化したデータは、秘密鍵でしか復元化できない」という性質を利用。
-ログインまでの処理
+クライアントは ~/.ssh/known_hosts に保存されているサーバ側の公開鍵を使用
保存されていない場合は、サーバに公開鍵の取得を要求し ~/.ssh/known_hosts に記録する
+クライアント側で乱数列を生成
+この乱数列をサーバの公開鍵で暗号化
+サーバに暗号化データを送信
+サーバは受け取ったデータを秘密鍵で復元化
(サーバの公開鍵 /etc/ssh/ssh_host_rsa_key.pub)
(サーバの秘密鍵 /etc/ssh/ssh_host_rsa_key)
+復元したデータをクライアントに送り返す
+クライアントは最初に生成した乱数列と送り返されたデータを比較
+一致すれば正しいホスト
+その後、通信内容を暗号化する共通鍵を作成し暗号化通信を行う

**OpenSSH4.0からの変更点
-クライアントにおいて、サーバの公開鍵が保存される ~/.ssh/known_hosts が
ハッシュ値を用いて記録するように変更。
そのため、サーバの公開鍵が変更になった時など、エントリがわからず削除できない。そこで次のコマンドを使用。
--ホスト名 or IPアドレスによる known_hostsファイルのエントリの検索
 # ssh-keygen -F XXXXX.co.jp
--ホスト名 or IPアドレスによる known_hostsファイルのエントリの削除
 # ssh-keygen -R XXXXX.co.jp
-ハッシュ値を用いない記録に戻すには以下をnoに変更する。
--設定ファイル:/etc/ssh/ssh_config
  HashKnownHosts yes

**公開鍵認証
-公開鍵とパスフレーズを用いたログイン方式。
クライアント側で公開鍵と秘密鍵の鍵ペアを作成し、サーバ側にその公開鍵を事前に登録しておく。
-公開鍵と秘密鍵の作成
 # ssh-keygen -t rsa
実行途中にパスフレーズの入力が求められるので、パスワードとは異なる言葉を入力する。
作成された公開鍵は、 ~/.ssh/id_rsa.pub
作成された秘密鍵は、 ~/.ssh/id_rsa
-公開鍵の転送
公開鍵をログインするサーバのユーザディレクトリへコピー
<pre>
 # ssh-copy-id -i .ssh/id_rsa.pub  '''username'''@'''remotehost.co.jp'''
</pre>
サーバの '''username'''/.ssh/authrized_keys ファイルに追加される
-デフォルトではパスワード認証が有効になっているので、パスワード認証を無効にする。
--設定ファイル:/etc/ssh/sshd_config
 PasswordAuthentication no
-パスワード認証が有効でも公開鍵認証によるログインが可能。
<pre>
 # ssh -i ~/.ssh/id_rsa.pub '''username'''@'''remotehost.co.jp'''
</pre>

**鍵の種類
-SSHには公開鍵暗号に基づく2つの認証方式(RSA,DSA)がある。 
-SSHプロトコル1はRSAのみ、SSHプロトコル2はDSAのみだが、RSAが特許期限切れになってからOpenSSHはSSHプロトコル2にRSAを追加。 
|鍵の種類|公開鍵ファイル|秘密鍵ファイル|
|SSH1 RSA| ~/.ssh/identity.pub| ~/.ssh/identity|
|SSH2 RSA| ~/.ssh/id_rsa.pub| ~/.ssh/id_rsa|
|SSH2 DSA| ~/.ssh/id_dsa.pub| ~/.ssh/id_dsa|

**ポートフォワーディング
-SSHによるポート転送によって経路の暗号化を行うことができる。 
(実行例)ローカルホストのポート1234がhostAのポート22につながるようにポートフォワーディングを行う。
 # ssh -N -f -L 1234:hostA:22 user@hostA
&#x2d;N : リモートでコマンドを実行しない
&#x2d;f : バックグラウンドで実行


トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS