Up
Down
Return

sshを(改めて)使ってみた

忘れないように書き留めておかねば..........

ssh

OpenSSHの話などインターネットを検索すると幾らでも見つかるので、今更どうということもないのかもしれませんが、このソフトはバージョンによって結構設定方法が違っているらしく、たまにいじるとひどいめにあったりしました。
そこでここではしっかりバージョン情報を書いておきます。


鍵の生成などは他の資料に任せ、ここでは上記の環境でどう設定されているかをまず示します。全体の方針として、

こととします。

Linux SSHサーバ

/etc/ssh/sshd_config

上記の方針により、


  • #Port 22 は、Port xxxx へ変更します。
  • Protocol 2 でSSH2のみ受け付けます。
  • HostKey /etc/ssh/ssh_host_rsa_key でRSAを指定。
  • AllowUsers hoge とユーザを限定。
  • 不要な認証方法は不可にしておきました。
    • RhostsRSAAuthentication no
    • HostbasedAuthentication no
    • PermitEmptyPasswords no
    • ChallengeResponseAuthentication no
    • PasswordAuthentication no

クライアントの公開鍵を予めログインするユーザのホームディレクトリの下に.sshディレクトリを作り、その中にauthorized_keysという ファイル名で登録しておきます。


Linux SSHクライアント

サーバで接続を許されているユーザ名のホームディレクトリの下に、.sshディレクトリを作り、ssh-keygen -t rsa で生成した秘密鍵と公開鍵、それにknown_hostsが入っています。
/etc/ssh/ssh_configか、ホームディレクトリの下の.sshディレクトリのconfigを上記の方針に沿って変更します。

  • Port 22を変更する
  • Protocol 2,1を2のみにする
  • RSAAuthentication を yes にする

$>ssh sshdが動いているサーバ名
で、サーバへ接続します。初めてつなごうとしたときは「つなごうとしているサーバがホントにつなぎたいサーバだと信じますか?」みたいな 意味のメッセージが表示されてフィンガープリントが表示されます。ここは、サーバの方も自分で作ったので信じるしかありません。yesを 応答すると、クライアント側の.sshディレクトリにknown_hostsができてそのサーバが登録されます。

認証されれば、サーバ側のプロンプトが出て、あとはtelnetと同じです。

Windows Putty

PuttyはSSH2しか使えません。日本語を使う必要がないので英語版のまま使っていますが、日本語化のパッチもあります。
Putty Configuration-Session Putty Configuration-SSH PuTTY Configuration-SSH-Auth

PuTTYにはPuTTY Key Generatorが付いているので、これで秘密鍵と公開鍵を生成できます。
PuTTYを起動するとConfigurationのウィンドウが表示されます。設定を要するのは上記の方針から、

  • Sessionのポートを指定する、
  • SSHのPreferred SSH protocol versionを 2 only にする、
  • Session-AuthのAttempt "keyboard-interactive" authentication[SSH2]のチェックをはずす
  • Session-AuthのPrivate key file for authenticationを指定する(これはいずれにしても必要)

といった点です。SessionのSaved sessionsの上の枠でこの設定に名前を付けてSaveします。

実際に使う場合は、Puttyを起動して、このSaved sessionsの一覧から対象を選択しLoadを押します。
login as:が出たら、ユーザ名を入力します。そうすると、passphrase for key が出るので、鍵を生成したときのパスフレーズを入力します。

うまく行かなかった時の助け船

ここで、おまけにZaurusでsshを使うお話を。