sshで接続

Ubuntu Serverインストール時にOpenSSHを入れたので、Windowsのターミナルからリモートログインできるようにする。そうするとウォンウォンと五月蝿いファンの回るマシンを裏の方に隠してしまえる。

Windows版ターミナルソフトのインストール

UTF-8対応TeraTerm Pro』というのが評判いいようなので、ここ(→Tera Termの詳細情報 : Vector ソフトを探す!)から落っことす。インストールはなにも問題なし。

TeraTerm Proの設定

とりあえず、そのまま入ってみる。最初立ち上げると[新しい接続]ダイアログが開くので、こんな感じで。

 ・ホスト:  192.168.1.xxx
 ・サービス: SSH
 ・TCPポート: 22 /SSHバージョン:SSH2/プロトコル:UNSPEC

[SSH認証]ダイアログで、ユーザ名とパスフレーズを入れて(もちろんUbuntuのログインIDとパスワードですよ)、[プレインテキストを使う]を選択して[OK]を押すと、すんなり入れた。
ただ、ローカルエコーがONになっていたり、表示が1行飛ばしになっているのが気持ち悪いので、[設定] → [端末]で[端末の設定]を開いて、次のように設定し直し。

 ・改行コード 受信: CR
        送信: CR
 ・ローカルエコー:  OFF
 ・漢字-受信:     UTF-8 (化ける場合はEUCにする)
 ・漢字-送信:     UTF-8

これでまずはWindowsからリモートログインできるようになった。

TeraTerm Proの便利な機能

 ・Alt+C マウスで選択した領域をコピー
 ・Alt+V Windowsクリップボードを貼り付け

これ、よく使います。

認証方式の変更

パスワード方式のログインはセキュリティ的にNGということなので、RSA鍵を使った方式に切り替える。まずは鍵の生成。『TeraTerm Pro』の[設定] → [SSHキー生成]で[RSA]を選択して[生成]を押す。[キーのパスフレーズ]が入力できるようになったら、適当に長めのキーワードを入力して、[公開鍵の保存]と[秘密鍵の保存]を行って鍵をファイルに保存しておく。(秘密鍵が漏れたら誰でも入り放題になるので厳重管理すること)

 ・公開鍵: id_rsa.pub
 ・秘密鍵: id_rsa

デフォルトのままだとこういう名前のファイルになる。この公開鍵ファイルをUbuntuに転送する。/home/sambaへコピーしてからはUbuntu側の作業。『TeraTerm Pro』はまだつながったままなのでWindowsからやってよい。

$ cd ~/.ssh
$ cp /home/samba/id_rsa.pub ./
$ touch authorized_keys
$ chmod 600 authorized_keys
$ cat id_rsa.pub >> authorized_keys

OpenSSHの設定変更

$ sudo nano /etc/ssh/sshd_config

変更する箇所は次の通り。

 1. Port 22xx         ← デフォルトの22だと危ないから
 2. PermitRootLogin no     ← rootでのログイン禁止
 3. PasswordAuthentication no ← パスワード認証不可
  4. PermitEmptyPasswords no  ← パスワードなしは不可
$ sudo /etc/init.d/ssh restart

OpenSSHを再起動する。

TeraTerm Proの再設定

[設定] → [SSH認証]で[認証設定]を開いて、次のように設定する。[設定] → [設定の保存]でこれらの設定はファイルに保存しておく。

 ・ユーザ名:     xxx
 ・RSA/DSA鍵を使う:  選択
      ・秘密鍵:  id_rsa([秘密鍵]を押してファイル読込みする)

TeraTerm Proの起動

[新しい接続]ダイアログはこんな感じ。

 ・ホスト:  192.168.1.xxx
 ・サービス: SSH
 ・TCPポート: 22xx /SSHバージョン:SSH2/プロトコル:UNSPEC

[SSH認証]ダイアログで、パスフレーズを入れて(Ubuntuのパスワード)[OK]を押すと、すんなり入れた。

エラーについて

自分のホームディレクトリなんだからアクセス権777でいいじゃんと思って『/home/xxx』をchmodしたら、こんなエラーを吐いて、SSHで接続できなくなった。

$ cat /var/log/auth.log

Authentication refused: bad ownership or modes for directory /home/xxx

フォルダ所有者以外の書込み権を設定してあるとエラーがでるようだ。あわてて元の755に戻す。700でもいいみたいだが。

参考

Linux側の設定はこちら(→http://www.geocities.jp/turtle_wide/tools/sshpass.html)が参考になりました。OpenSSHの設定はこちら(→http://dotred5.blogspot.com/2008/04/ubuntu-server-1.html)を参考にさせていただきました。多謝!