SSH接続に関するヒント

sshg.cs.ehime-u.ac.jp へログインするにはどうすればいいですか?

まず,情報系教育コースで運用されている教育用計算機システムへログインするためのアカウントの情報を用意します (配布済みのはず).
愛媛大学全学アカウントとは異なる点に注意しましょう.

つづいて,公開鍵ファイル・秘密鍵ファイルのペアを作成し,公開鍵ファイルに含まれるデータ (公開鍵) を sshg.cs.ehime-u.ac.jp における ~/.ssh/authorized_keys へ (追加で) 書き込みます.

その後,例えば以下のようなソフトウェアを用いて,sshg.cs.ehime-u.ac.jp へSSH接続します.

Tera Term を用いる場合の詳細は 情報系教育コース 教育用計算機システム サポート・ページ | 学外からの利用方法 を参照しましょう (学内限定).

公開鍵認証の設定方法がよくわからないのですが

sshg.cs.ehime-u.ac.jp に対してだけ成立する方法

情報系教育コース 教育用計算機システム サポート・ページ | 学外からの利用方法 における「公開鍵の登録方法」を参照し実行しましょう (学内限定).

この方法では公開鍵を sshg.cs.ehime-u.ac.jp における ~/.ssh/authorized_keys へ手軽にコピーできますが,そのファイルの内容は上書きされる 点に注意しましょう.

~/.ssh/authorized_keys は複数の公開鍵を含むことが可能です.
接続元のパソコンごとに公開鍵ファイル・秘密鍵ファイルのペアを作成し (1つのペアを使いまわししないで),接続元のパソコンごとに公開鍵を ~/.ssh/authorized_keys へ追加することにより,セキュリティおよび利便性が向上します.
例えば,あるパソコンを紛失した場合,そのパソコンで作成した公開鍵を ~/.ssh/authorized_keys から削除すれば,そのパソコン内の秘密鍵を用いたSSH接 続を防ぐことが可能です.

ほかにも,演習ごとに公開鍵ファイル・秘密鍵ファイルのペアを作成・使用することにより,複数の演習で同じファイル (~/.ssh/id_rsa.pub, ~/.ssh/id_rsa) を使用することに伴う不具合を避けることが可能です.

ssh-copy-id コマンドを使用可能な場合に成立する方法

ssh-keygen コマンドなどを用いて,演習室へ持ってくるノートパソコン上で公開鍵ファイル・秘密鍵ファイルのペアを作成します.

その後,パスワード認証が可能な演習室のネットワークへパソコンを接続し,ssh-copy-id コマンドを使用してSSH接続したいサーバへパスワード認証でログインします.

  • ssh-copy-id は,公開鍵ファイルを必要とします.
    • 「-i 公開鍵ファイルのファイル名」というオプションで公開鍵ファイルを指定します.指定しない場合は基本的に ~/.ssh/id_rsa.pub が使用されます.
    • 「-i 公開鍵ファイルのファイル名」として指定したファイル名が「.pub」で終了していない場合 (秘密鍵ファイルのファイル名を指定したり),指定された ファイル名に「.pub」を追加したファイル名が使用されます.
  • ssh-copy-id は,SSHサーバへのログインに成功すると,公開鍵をサーバ上の ~/.ssh/authorized_keys ファイルへ 追加 します.
    • ~/.ssh ディレクトリや ~/.ssh/authorized_keys ファイルが存在しない場合,適宜作成しパーミッションを設定します.
    • 追加しようとしている公開鍵が ~/.ssh/authorized_keys にすでに含まれている場合,さらなる (重複しての) 追加は 行いません

公開鍵を追加したあとは,パスワード認証ではなく,公開鍵認証によりSSH接続できることを確認しましょう.
OpenSSH を使っているなら,ssh コマンドのオプションに「-o PasswordAuthentication=no」を追加して,SSH接続できることを確認しておきましょう.

その他の場合

「openssh authorized_keys」といったキーワードを検索すれば,設定に関するWebページがたくさん見つかります.
それらのページのほうが詳しく説明されていますが,以下簡単に説明します.

おおまかには以下の手続きにより,公開鍵認証の設定を行えます.

  1. 手元のパソコン上で秘密鍵ファイル・公開鍵ファイルのペアを作成する.
  2. 接続先のSSHサーバへログインする.ログイン方法は,パスワード認証したSSH接続でも,リモートデスクトップ接続でも,なんでもよい.
  3. SSHサーバのホームディレクトリへ書き込めるのは本人のみであることを確認する (あるいは chmod go-w ~ を実行しておく).
  4. 存在しない場合,SSHサーバ上に ~/.ssh ディレクトリを作成し,パーミッションを 700 にする (drwx——).
    パーミッション設定時のターミナルへの入力は chmod 700 ~/.ssh
  5. SSHサーバ上の ~/.ssh/authorized_keys ファイルへ,手元のパソコンで作成した公開鍵ファイルに含まれるデータ (公開鍵) を追記する.
  6. 未設定ならば,SSHサーバ上の ~/.ssh/authorized_keys ファイルのパーミッションを 600 にする (-rw——-). パーミッション設定時のターミナルへの入力は chmod 600 ~/.ssh/authorized_keys
  7. 手元のパソコンからSSHサーバへ公開鍵認証でSSH接続できることを確認する.
    SSHサーバ上でのユーザ名を USER, SSHサーバのホスト名を sshg.cs.ehime-u.ac.jp としたとき,この際のターミナルへの入力は ssh -o PasswordAuthentication=no USER@sshg.cs.ehime-u.ac.jp
    USER@ をつけないと,手元のパソコン上のユーザ名が使用される点に注意する (SSHサーバ上のユーザ名と同じなら問題ないが).

公開鍵認証の設定を完了したはずですが,SSH接続できません

まず,以下の2つのケースが考えられます.

  1. 公開鍵認証の設定がうまくいっておらず,パスワード認証になっている.
    かつ,パスワードではなく (秘密鍵ファイルを開くための) パスフレーズを入力している.
  2. 公開鍵認証の設定はうまくいっているが,パスフレーズを入力すべき箇所でパスワードを入力している.

SSH接続時に端末へ表示されるメッセージを読んで (無視する人が大変多い),入力を求められているのがパスワードなのかパスフレーズなのかを確認するように しましょう.

ケース1 だとすると,その原因は以下のように無数に考えられます.一概に言えないため,教職員に相談しましょう.

  • 鍵ファイルを作成していない.
  • 演習室に持ってきていないパソコン上で設定を行った.
  • 手元の秘密鍵ファイル内部のデータ (秘密鍵) とサーバ上の公開鍵が対応していない.
  • サーバ上でのホームディレクトリのパーミッションが不適切である.
  • サーバ上に ~/.ssh が存在しない,あるいはパーミションが不適切である.
  • サーバ上に ~/.ssh/authorized_keys が存在しない,あるいはパーミションが不適切である.
  • サーバ上の ~/.ssh/authorized_keys に適切な公開鍵が含まれていない.
  • サーバ上ではなく,手元のパソコン上の ~/.ssh/authorized_keys に公開鍵を追加した.
  • サーバ上の ~/.ssh/authorized_keys に,サーバで作成した公開鍵を追加した.
  • SSH接続する際のユーザ名を間違えている (ssh コマンド等でユーザ名を指定しない場合,手元のパソコン上でのユーザ名が使われる).
  • SSH接続時の秘密鍵ファイルが不適切 (ssh コマンド等で「-i」オプションにより秘密鍵ファイルを指定しない場合,~/.ssh/id_rsa が使われる).

sshg.cs.ehime-u.ac.jp へSSH接続できなくなりました.どうすればいいですか?

学外ネットワークから

情報系教育コースで運用されているサーバへ リモートデスクトップ接続 し,接続後の計算機から sshg.cs.ehime-u.ac.jp へSSH接続し,sshg.cs.ehime-u.ac.jp 上で今後SSH接続できるよう ~/.ssh/authorized_keys を修正するという方法が考えられます.

リモートデスクトップサーバの一覧などについては,情報系教育コース 教育用計算機システム サポート・ページ | 学外からの利用方 法 を参照しましょう (学内限定).

~/.ssh/authorized_keys の修正にあたっては,追加しようとしている公開鍵が,手元のパソコン上のものである ことを確認しましょう.
ときどき,sshg.cs.ehime-u.ac.jp 上で作成し,手元のパソコンには存在しない公開鍵を追加するケースがあります.
このとき,sshg.cs.ehime-u.ac.jp から sshg.cs.ehime-u.ac.jp へ公開鍵認証でSSH接続できますが,これはほとんどの場合意味がないでしょう.

情報系教育コースのネットワークから

上述した ssh-copy-id を使用するのが手っ取り早いでしょう.

Tera Term でSSH接続できません

暗号化や鍵交換等のためさまざまなアルゴリズムが提案されていますが,過去に提案されたアルゴリズムのうち脆弱であると判明したものは,新しいSSHサーバ ですと使用できないことがあります.

Tera Term の代わりに OpenSSH を使う,Tera Term の最新のベータ版を使う,といった対応が考えられます.