SSH 使用法覺書
前書き
本文書は、SSHのRSA認證を利用して、より便利で怠惰な計算機活用をするために行つた支配人の運用記録とでもいふべきものである。
利用できる暗號系としては、他にDSA、ECDSAもあるが、支配人は半ば惰性でRSAを使つてゐる。あれあれ?
大雜把な手順
RSA認證するための作業手順は大凡以下の通りである。
- 非對稱暗号鍵を生成
- 生成した暗号鍵をホストとクライアントに設置
- 暗号鍵のパスフレーズをクライアントに登録
なほ、ここでは、遠隔利用したい計算機をホスト、利用者の目の前にある計算機をクライアントと呼んでゐる。以下も同樣である。
非對稱暗号鍵についてはおまけに好い加減な説明をしたので、興味があればどうぞ。
手順1: 非對稱暗号鍵の生成
鍵を生成を行ふ爲に、以下のコマンドを入力する。
% ssh-keygen -t rsa
コマンドを入力すると、パスフレーズを要求されるので入力する。さうすると、~/.ssh に id_rsa と id_rsa.pub といふ2つのファイルが生成される。id_rsa は祕密鍵、rd_rsa.pub は公開鍵である。公開鍵は他人に見られても問題ないが、祕密鍵は絶對に見られないやうにしなければならない。
手順2: 暗号鍵の設置
生成した暗号鍵をクライアントとホストに設置する。祕密鍵をクライアントに、公開鍵をホストに設置する。
祕密鍵の方は、クライアントに生成された~/.ssh/id_rsaがそのまま使用される。特に行ふべき操作はない。(古いバージョンだと~/.ssh/identityに設置しなければいけないとかなんとかあつたのだが、もう良く分らない。)
一方、公開鍵はホストの~/.ssh/authorized_keysに設定する。生成したid_rsa.pubをホストに送つた後、cat ~/.ssh/id_rsa >> ~/.ssh/authorized_keysを實行すれば目的を達成する。勿論、他の方法でauthorized_keyに反映させても構はない。
手順3: パスフレーズの登録
この手順は、リンクを除き舊のまま。平成23年10月現在の状況は手許で確認せず。即ち、ssh-agentを今現在使つてゐないので、何とも言へない。取り敢へず文章は遺しておく。
閑話休題。
鍵を生成して、決められた通りに設置したら仕舞ひかといふと、さうは問屋が卸さない。このままホストに ssh で入らうとすると、鍵をつくつたときのパスフレーズの入力を求められる。ホストのログインパスワードを打つ代はりにパスフレーズを打つことになつただけで、手間は一緒である。(註: 鍵のパスフレーズはクライアントの外には出ないので、ここまででも安全性は向上する。)
そこで、パスフレーズをssh-agentに登録する。一度登録しておくと、パスフレーズを入力する必要なく sshでホストに入り放題である。ただ、注意しておくが、クライアントマシンを再起動したら、再度ssh-agentに登録する必要がある。支配人が屡々うつかりする點がこれなので、書き留めておく。
ssh-agentにパスフレーズを登録するには、ssh-addといふコマンドを使ふ。ssh-addを實行すると、パスフレーズを訊いてくるので、入力する。これで幸福で怠惰な生活が到來する。
Windows + cygwin における設定
ここまでの話は Unix 系 OS での話。WindowsではCygwinを用いれば大體同じことが出來るが、ssh-agentを立ち上げるところで難點がある。幸ひ、win-ssh-askpassといふ cygwin の ssh-agent のラッパーがあるので、これを使ふとよい。
效用
無論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 などを觸りたいときに使へる。支配人は、これで時たま大學の研究室のメールサーバに外からアクセスかけてメールを出したり取得したりしてゐた。最近は使つてゐない。