next up previous contents index
: ssh でパスフレーズの入力を省略する方法 : 参考: パスワードと暗号通信 : ssh や https と暗号通信   目次   索引

参考: ssh の使い方

Telnet 等のデモが必要. 2 台計算機, 2 台プロジェクタを用意.

あるコンピュータを端末にして, 別のコンピュータに 接続して ( login して) 利用することが可能である. 接続先のコンピュータは unix が稼働する計算機であることがおおい. このような接続には telnet 等が利用されてきたが,

  1. パスワードを平文でそのままネットワークに流すので, パスワードを比較的 容易に盗まれてしまう.
  2. 通信内容も比較的容易にみられてしまう.
このような問題点があるため, 現在では, telnet の使用, および似たプロトコルを用いる rlogin を禁止している 組織も多い. ftp でファイルを取得する場合も, パスワードは平文でながれる. また pop を用いて, メールをメールサーバより取得する場合もパスワードは 平文でながれる.

ssh は password login を許可し 一番低い security level で運用することも可能である. security level が低いので,
どこか ===(telnet)==>
踏台(telnet で login できて, ssh が使える) ===(ssh) ==>
hogera.kobe-u.ac.jp
という形でマシン hogera に login ができてしまうが, これでは ssh でパスワード等を暗号通信 する意味がない. 踏台マシンに至る過程でパスワードが洩れる可能性がある. 出先で ssh を利用できるマシンがないマシンがない場合は, 利用をあきらめるのが肝要であろう. [例: 某大学のマシンは, cracker の IRC サイトにされてて, 4 ヵ月も運用者がそれに気が付いていなかったという状態 があった. このような場合確実にパスワードは洩れているとおもって間違いない. ]

ssh を 本格的に利用するには, public key, private key を生成する必要がある. これらは RSA 暗号の公開鍵と秘密鍵である. public key, private key を用いて ssh を利用すると, コピー等が 便利でかつ安全度が増す.

public key, private key は パスフレーズ(パスワードに類するもの) を入力としてコマンド ssh-keygen で生成する. 以下, 自分のマシン名を potato-123 と仮定する. login したいマシンの名前を orange と仮定し, 両方とも unix が稼働していると仮定する.

自分のマシン potato-123 に login して,

ssh-keygen
と入力する. パスフレーズの入力をもとめられてからしばらく計算機の計算をまつと, 二つのファイル
  .ssh/identity     .ssh/identity.pub
が生成される.

計算機 A より, 計算機 B に ssh RSA 認証で login するには, 計算機 A に
.ssh/identity (RSA 秘密鍵)
計算機 B に
.ssh/autorized_keys (RSA 公開鍵, identity.pub のコピー)
が必要.

たとえば A を自分のマシン potato-123, B を相手先マシン orange とする. .ssh/identity.puborange .ssh/authorized_keys なる名前でコピーする必要がある.
orange での login 名 (username) と自分のマシンでの login 名は同一と仮定するとき, 以下のようにすればコピーできる.

potato-123%  ssh orange 'mkdir .ssh' 
potato-123%  scp .ssh/identity.pub username@orange:.ssh/authorized_keys

potato-123 より, ssh で login を試みてみよう.

potato-123%   ssh orange  
Enter passphrase for RSA key 'taka@potato-123':
と passphrase を聞いてきたら, うまくいっている. うまくいかない場合は, ssh -v-v オプションを 付けて( verbose ) 原因を探るとよい.

Q. orange での login 名が potato-123 の login 名と ことなります. どうすればいいでしょう.
A. orange での login 名が hoge の場合, potato-123 から orange に login するには,
ssh orange -l hoge でよい.





Nobuki Takayama 平成15年12月5日