SSH 使用法覺書
前書き
本文書は、ssh の RSA 認證を利用して、より便利で怠惰な計算機活用をするために行つた支配人の運用記録とでもいふべきものである。
大雜把な手順
RSA 認證するための作業手順は大凡以下の通りである。
- 非對稱暗号鍵を生成
- 生成した暗号鍵をホストとクライアントに設置
- 暗号鍵のパスフレーズをクライアントに登録
なほ、ここでは、遠隔利用したい計算機をホスト、利用者の目の前にある計算機をクライアントと呼んでゐる。以下も同樣である。
非對稱暗号鍵についてはおまけに好い加減な説明をしたので、興味があればどうぞ。
手順1: 非對稱暗号鍵の生成
鍵を生成を行ふ爲に、以下のコマンドを入力する。
% ssh-keygen -t rsa
コマンドを入力すると、パスフレーズを要求されるので入力する。さうすると、~/.ssh に id_rsa と id_rsa.pub といふ2つのファイルが生成される。id_rsa は祕密鍵、rd_rsa.pub は公開鍵である。公開鍵は他人に見られても問題ないが、祕密鍵は絶對に見られないやうにしなければならない。
手順2: 暗号鍵の設置
生成した暗号鍵をクライアントとホストに設置する。祕密鍵をクライアントに、公開鍵をホストに設置する。
祕密鍵はクライアントの ~/.ssh/identity に設定する。即ち、生成した id_rsa の内容を identity に反映する。cat ~/.ssh/id_rsa >> ~/.ssh/identity を實行すれば、目的を達成する。なほ、いふまでもないが、identity の内容も他人に見られないやうにする必要がある。
一方、公開鍵はホストの ~/.ssh/authorized_keys に設定する。生成した id_rsa.pub をホストに送つた後、id_rsa を identity に反映させたのと同じやうにすればいい。
手順3: パスフレーズの登録
鍵を生成して、決められた通りに設置したら仕舞ひかといふと、さうは問屋が卸さない。このままホストに ssh で入らうとすると、鍵をつくつたときのパスフレーズの入力を求められる。ホストのログインパスワードを打つ代はりにパスフレーズを打つことになつただけで、手間は一緒である。(註: 鍵のパスフレーズはクライアントの外には出ないので、ここまででも安全性は向上する。)
そこで、パスフレーズを ssh-agent に登録する。一度登録しておくと、パスフレーズを入力する必要なく ssh でホストに入り放題である。ただ、注意しておくが、クライアントマシンを再起動したら、再度 ssh-agent に登録する必要がある。支配人が屡々うつかりする點がこれなので、書き留めておく。
ssh-agent にパスフレーズを登録するには、ssh-add といふコマンドを使ふ。ssh-add を實行すると、パスフレーズを訊いてくるので、入力する。これで幸福で怠惰な生活が到來する。
Windows + cygwin における設定
ここまでの話は Unix 系 OS での話。Windows では cygwin を用いれば大體同じことが出來るが、ssh-agent を立ち上げるところで難點がある。幸ひ、win-ssh-agent といふ cygwin の ssh-agent のラッパーがあるので、これを使ふとよい。支配人も有難く利用させて貰うてゐる。
インストールした後、win-ssh-agent --hide-console を實行すると、パスフレーズを訊かれるので、入力すれば、ssh-agent に ssh-add でパスフレーズを登録したのと同じ状態になる。實際には、支配人はコマンドを意識的に實行するのが煩はしいので、バッチファイルを書いて、スタートアップにショートカットを置いてたりするのだが。怠惰も此處に極まれりというた處か。
效用
無論 ssh 或は slogin でホストにログインするときにパスワードを打たずに濟むと言ふのも大きな利點である。でも、それなら目の前のマシンにログインするときの手間を考へればさう大したことではない。
眞の效用は、cvs や rsync など、ssh 經由で色々なことをするときに途中でパスワードを要求される煩はしさから解放されることである。cron などを用ゐて自動で何かやらさうとするなら、必然的なものであらう。
兔も角、怠惰で安全な計算機活用の一助になることは間違ひない。
參照
おまけ1: 非對稱暗號鍵について
非對稱暗號鍵とは、鍵を二種類つくり、その2つの鍵を用いて暗號、復號に用ゐるものである。2つの鍵のうち、片方は嚴重に祕匿すべき「祕密鍵」であり、他方は公開して構はない。否、利用するために敢へて公開する場合もある「公開鍵」である。暗號に用ゐる鍵と復號に用ゐる鍵が異なるといふ點が大きな特徴であり、情報の祕匿の外、個人認證にも應用出來る代物である。詳しくは暗號理論を扱つた別の文書を參照されたし。屡々公開鍵暗號とも呼ばれる。
SSH の RSA 認證は、この非對稱暗號鍵を生成し、認證に利用するものである。RSA といふのは非對稱暗號の方法の一つで、恐らく最もよく知られた方法の一である。これ以上の説明は他の文獻に讓る。
おまけ2: トンネル構築の方法
平成16年2月27日の日記より。RSA 認證にはまるで關係ないが、使用法覺書といふタイトルには反してない筈。
以下のコマンドで SSH トンネルの構築が可能。
% ssh -2 -N -f -L localport:localhost:remoteport user@remotehost
localport と remoteport にはポート番号、localhost、remotehost にはホスト名、user にはリモートホストでのユーザ名を指定する。
で、これが何に使へるのか。外からは SSH しか接續を許可されてゐない場合に、POP や SMTP などを觸りたいときに使へる。支配人は、これで時たま研究室のメールサーバに外からアクセスかけてメールを出したり取得したりしてゐる。