Skip to content

e-chan1007/uec-ssh-proxy

Repository files navigation

UEC SSH プロキシ

SSH の ProxyCommand として利用すると、sol/CED/IED などの学内サーバーに簡単に接続できます。 使用には、あらかじめ公開鍵認証の設定が必要です。

インストール

実行ファイルをダウンロードして、適当な場所に配置してください。 OSやウイルス対策ソフトウェアセキュリティ機能によって実行がブロックされる場合は、ご利用のソフトウェアのサポートページ等をご確認いただくか、ご自身の環境でのコンパイルをお試しください。

SSH の設定ファイル(Windows: %USERPROFILE%\.ssh\config(C:\Users\ユーザー\.ssh\config), macOS/Linux: ~/.ssh/config)に以下のように設定を追加してください。

Host uec-*
  User あなたのUECアカウント
  ProxyCommand 実行ファイル(uec-ssh-proxy)の配置先パス -host %h -user %r -port %p

認証鍵の設定やホスト名の指定など、詳細な設定は「SSH の設定例」もご覧ください。

使用方法

実行ファイル(uec-ssh-proxy)を単体で実行することはできず、sshコマンドと組み合わせて利用します。 例えば、「インストール」セクションの設定例のとおりに設定が行われている場合は以下のように接続できます。

ssh uec-sol
ssh uec-ced
ssh uec-ied

VPN が必要な CED や IED の環境であっても、VPN なしで接続することができます。

SSH の設定例

ご自身の環境に合わせて、適宜組み合わせて設定を行ってください。

.sshフォルダ内にuec-ssh-proxyという名前で実行ファイルを配置した場合

# Windows
Host uec-*
  User z2000000
  ProxyCommand C:/Users/username/.ssh/uec-ssh-proxy.exe -host %h -user %r -port %p
# macOS/Linux
Host uec-*
  User z2000000
  ProxyCommand ~/.ssh/uec-ssh-proxy -host %h -user %r -port %p

ホストを明示的に設定する場合

Host uec-sol uec-ced uec-ied
  User あなたのUECアカウント
  ProxyCommand /path/to/uec-ssh-proxy -host %h -user %r -port %p

uec-sol, uec-ced, uec-iedを明示的に設定することで、VSCode の Remote SSH 拡張機能などで接続先を選択しやすくなります。

カスタム認証鍵を使用する場合

id_rsaid_ed25519などのデフォルトのファイル名の認証鍵ではなく、uec_rsa_key等のカスタムの認証鍵を使用する場合は、SSH の設定ファイルに以下のように追加してください。

Host uec-* ssh.cc.uec.ac.jp
  User あなたのUECアカウント
  IdentityFile ~/.ssh/id_ed25519_custom
  ProxyCommand /path/to/uec-ssh-proxy -host %h -user %r -port %p

特に、ホスト ssh.cc.uec.ac.jp に対して鍵の指定がない場合にはすべての接続に失敗します。

別のホスト名パターンを使用する場合

Host *-uec
  User あなたのUECアカウント
  ProxyCommand /path/to/uec-ssh-proxy -host %h -user %r -port %p

Hostのパターンを変更することで、ホスト名の接続先を変更できます。例えば、*-uecとすることで、sol-uec, ced-uec, ied-uecなどのホスト名に対応できます。

以下のように特定のパターンを含まずにホスト名を明示的に指定することもできます。

Host sol ied ced
  User あなたのUECアカウント
  ProxyCommand /path/to/uec-ssh-proxy -host %h -user %r -port %p

ホスト名の書き換え

ssh コマンドに指定したホスト名に以下の文字列が含まれ、かつuec.ac.jpで終わるドメインではない場合は、接続先を以下の通りに変更します。

  • solsol.edu.cc.uec.ac.jp
  • cedorange[01-30].ced.edu.cc.uec.ac.jp
  • ied[ab][11-78].ied.inf.uec.ac.jp
  • sshssh.cc.uec.ac.jp

CED に接続する場合は、CED Monitor の表示に応じて利用可能でユーザーが最も少ない端末に接続します。 IED に接続する場合は、すでに起動している利用可能な端末に優先して接続し、 起動中の端末がすべて利用中である場合には停止中の端末を起動してから接続します。

開発

Go言語の開発環境が必要です。

$ go mod download
$ go build

ProxyCommandでコマンドを指定するときに、-verboseオプションをつけるとログを詳細に表示します。

About

電通大のSSH鯖への接続支援ツール

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages