macOS 用 GSI-OpenSSH を用いたHPCIログイン¶
0. 変更履歴¶
0.1 主な変更内容¶
2024.09.09¶
tarball を gsi-openssh-for-macOS-20240902.tar.gz に更新しました。
2024.04.05¶
ログイン手順の一部を利用者の環境に合わせて修正しました。
2023.07.31¶
一部の項目で文章表現や構成を修正しました。
本書のテキスト版の提供を終了しました。
2023.05.09¶
「1.2 本ソフトウェアの制限事項」を記載しました。
2023.04.28¶
参照するドキュメントの URL を修正しました。
2023.01.10¶
Apple silicon に対応しました。
tarball を gsi-openssh-for-macOS-20230110.tar.gz に更新しました。
「3.3 注意事項」の記述を修正しました。
「4. macOS 用 GSI-OpenSSH のアップデート手順」を記載しました。
2022.12.19¶
タイトルを変更しました。
2022.07.15¶
英語版ドキュメントを作成しました。
2022.01.31¶
初版を公開しました。
1. 概要¶
本書は、macOS の利用者を対象に、macOS 用 GSI-OpenSSH を利用して HPCI 環境にログインする方法について解説したマニュアルです。
macOS 用 GSI-OpenSSH とは、以下のソフトウェアを macOS 上でビルドしたものです。Docker イメージは使用しません。
OpenSSL
openssl-3.0.14
Grid Community Toolkit
GCT version 6.2.20240202 (gsi-openssh-9.3p1c を含む)
以降、本書では Grid Community Toolkit を GCT と省略して表記します。
1.1 動作環境¶
Intel チップの Mac¶
macOS 12 以降 (Monterey, Ventura, Sonoma)
HPCI の検証環境では、Monterey で動作検証を行いました。
Apple silicon の Mac¶
macOS 12 以降 (Monterey, Ventura, Sonoma)
HPCI の検証環境では、Monterey で動作検証を行いました。
1.2 本ソフトウェアの制限事項¶
サーバ機能は提供しません。
macOS 用 GSI-OpenSSH はクライアント機能だけを提供します。サーバ機能の動作は保証しておりません。
2. macOS 用 GSI-OpenSSH のインストール手順¶
2.1 ダウンロード¶
tarball を下記 URL からダウンロードします。
ユニバーサルバイナリとして作成しているので、Intel チップの Mac、Apple silicon の Mac のどちらでも動作します。
gsi-openssh-for-macOS-20240902.tar.gz (18,028,601 byte)
SHA256 hash of tarball :
8332154e58c2855af664677456f4e4f253d4b73bf9cc849517d5c069c398f244
SHA512 hash of tarball :
7c7a9508604613048c781396410e4d5aaeebf344b962bb64e56598f881a70214f4ad12349ddb26e89fcd7d0005df067ab54db8ad5f5fdec108cf6b0fcc53fb92
2.2 インストール手順¶
ターミナルを起動します。操作はすべてターミナル上で行います。
インストール先のディレクトリとして /usr/local/globus-6 ディレクトリを作成します。globus-6 の所有者およびグループは、利用者のアカウントにあわせて変更してください。
% sudo mkdir /usr/local/globus-6 % sudo chown <your-uid>:<your-gid> /usr/local/globus-6
ダウンロードしたファイルを /usr/local/globus-6 に展開します。
% cd /usr/local/globus-6 % tar zxvf /path/of/gsi-openssh-for-macOS-20240902.tar.gz
2.3 インストール後の設定¶
環境設定¶
GCT の使用に必要な環境変数の設定をおこなうスクリプト globus-user-env.sh があります。これをログインシェル (zsh) の個人用設定ファイル (~/.zprofile) で読み込んで設定します。
また、macOS 標準の SSL (LibreSSL) ではなく、tarball に同梱した OpenSSL のコマンドを優先して使用するため、環境変数 PATH の設定を変更します。
ターミナルを起動します。
~/.zprofile に下記を追記します。
GLOBUS_LOCATION=/usr/local/globus-6 if [ -f $GLOBUS_LOCATION/share/globus-user-env.sh ] ; then . $GLOBUS_LOCATION/share/globus-user-env.sh PATH=$GLOBUS_LOCATION/openssl/bin:$PATH fi
設定を反映するため、一旦ターミナルを終了し、改めて起動してください。
パスが設定されたことを確認するため、gsissh のバージョンを確認します。
% gsissh -V OpenSSH_9.3p1c-GSI GSI-hpn15v2, OpenSSL 3.0.14 4 Jun 2024 %
CA 証明書の設定¶
HPCI 認証局の CA 証明書をダウンロードして /usr/local/globus-6/share/certificates ディレクトリに配置します。
下記コマンドを実行します。
% /usr/local/globus-6/share/hpci/set-cacert.sh
CRL の定期更新設定¶
HPCI 認証局の CRL を定期的に更新するための設定を行います。
/usr/local/globus-6/share/hpci/fetch-crl.sh というスクリプトを定期実行することにより実現します。
スクリプトの定期実行には cron を利用します。cron への登録には /usr/local/globus-6/share/hpci/set-fetch-crl.sh スクリプトを使用します。
下記コマンドを実行します。
% /usr/local/globus-6/share/hpci/set-fetch-crl.sh on
実行すると、実際に crontab に登録した内容を標準出力に出力します (既存のエントリも含めてすべて出力します)。/usr/local/globus-6/share/hpci/fetch-crl.sh を実行するエントリが登録されていることをご確認ください。
変更前の内容をバックアップファイル crontab.bak としてカレントディレクトリに出力します。不要ならば削除してください。
インストール後に必要な設定は以上です。
2.3 アンインストール手順¶
macOS 用 GSI-OpenSSH が不要になった場合のアンインストール手順は下記のとおりです。
crontab から fetch-crl.sh の設定を削除します。下記コマンドを実行します。
% /usr/local/globus-6/share/hpci/set-fetch-crl.sh off
実行すると、実際に crontab に登録された内容を標準出力に出力します (既存のエントリも含めてすべて出力します)。/usr/local/globus-6/share/hpci/fetch-crl.sh を実行するエントリが消去されていることをご確認ください。
変更前の内容をバックアップファイル crontab.bak としてカレントディレクトリに出力します。不要ならば削除してください。
/usr/local/globus-6 ディレクトリを削除します。
% cd /usr/local/ % rm -rf globus-6/* % sudo rmdir globus-6
3. HPCI 環境へのログイン手順¶
macOS 用 GSI-OpenSSH をインストールした環境では、ターミナル上で myproxy-logon コマンドや gsissh コマンドをそのまま実行できます。HPCI ログインマニュアルの記述に従って実行してください。
3.1 ターミナル の起動¶
ターミナルを起動します。
3.2 ログインサーバへのログイン¶
本節ではログイン手順の概要を説明します。詳細は HPCI ログインマニュアル を参照してください。
代理証明書の発行¶
最初に、Web ブラウザで HPCI 証明書発行システム にアクセスして代理証明書を発行し、代理証明書リポジトリに格納する必要があります。
注意
代理証明書の有効期限は最大168時間です。
有効期限が切れたら、その都度発行 (格納) してください。
発行 (格納) 手順は以下のドキュメントを参照してください。
HPCI ログインマニュアル の「2.2. 代理証明書の発行手順」
代理証明書のダウンロード¶
ターミナル に代理証明書をダウンロードします。
手順の詳細は以下のドキュメントを参照してください。
HPCI ログインマニュアル の「2.3.2. myproxy-logon コマンドを利用して代理証明書をダウンロードする手順」
代理証明書のダウンロードができない場合は、以下のドキュメントをリンクを参照してください。
HPCI ログインマニュアル の「2.3.2.2. エラー対応方法」
HPCI 情報共有 CMS の トラブルシューティング - GSI-SSHシステム管理関連
myproxy-logon コマンドで、代理証明書をダウンロードします。
[hpciuser@XXXXXXXXXXXX ~]$ myproxy-logon -s portal.hpci.nii.ac.jp -l [HPCI-ID] Enter MyProxy pass phrase: ******** A credential has been received for user <HPCI-ID> in /tmp/x509up_up2000. [hpciuser@XXXXXXXXXXXX ~]$
grid-proxy-info コマンドで、取得した代理証明書の情報を確認します。
[hpciuser@XXXXXXXXXXXX ~]$ grid-proxy-info subject : /C=JP/O=NII/OU=HPCI/CN=user/CN=proxy/CN=proxy/CN=proxy/CN=proxy issuer : /C=JP/O=NII/OU=HPCI/CN=user/CN=proxy/CN=proxy/CN=proxy identity : /C=JP/O=NII/OU=HPCI/CN=user type : RFC 3820 compliant impersonation proxy strength : 2048 bits path : /tmp/x509up_u2000 timeleft : 12:01:15 [hpciuser@XXXXXXXXXXXX ~]$
ログインサーバへのログイン¶
手順の詳細は以下のドキュメントを参照してください。
HPCI ログインマニュアル の「2.4. ログインサーバへログインする手順」
ログインサーバにログインできない場合は以下のドキュメントを参照してください。
HPCI ログインマニュアル の「2.4.2. エラー対応方法」
HPCI 情報共有 CMS の トラブルシューティング - GSI-SSHシステム管理関連
ログインサーバにログインします。以下に東京工業大学のログインサーバ login.t3.gsic.titech.ac.jp にログインする例を示します。
[hpciuser@XXXXXXXXXXXX ~]$ gsissh -p 2222 login.t3.gsic.titech.ac.jp Last login: Tue Jan 24 11:09:13 2023 from xxx.xxx.xxx.xxx -------------------------------------------------------------------- Last modified: 2023-04-06 17:00:00 JST ** Do not run heavy programs like ISVs on login nodes login[01]. ** (The current TSUBAME 3.0 operational status) https://www.t3.gsic.titech.ac.jp/ Twitter:@Titech_TSUBAME -------------------------------------------------------------------- <HPCI-ID>@login1:~>
ログインサーバ から exit すると、 ターミナルのシェル に戻ります。
<HPCI-ID>@login1:~> exit logout Connection to login.t3.gsic.titech.ac.jp closed. [hpciuser@XXXXXXXXXXXX ~]$
3.3 注意事項¶
注意
本節の件は 2022年12月28日時点で解消されています。
現状、理研 R-CCS のサーバへの接続がエラーになります。
% gsissh -p 2222 hpciss04.r-ccs.riken.jp ssh_packet_read: read: Connection reset by peer %
この問題を回避するには、以下の方法で対応してください。
実行時に引数 -oGSSAPIKexAlgorithms=gss-gex-sha1- を指定します。
% gsissh -p 2222 -oGSSAPIKexAlgorithms=gss-gex-sha1- hpciss04.r-ccs.riken.jp
個人用の ssh 設定ファイル $HOME/.ssh/config に下記の設定を追加します。
Host *.r-ccs.riken.jp GSSAPIKexAlgorithms gss-gex-sha1-
この場合は実行時の引数を省略できます。
% gsissh -p 2222 hpciss04.r-ccs.riken.jp
4. macOS 用 GSI-OpenSSH のアップデート手順¶
本章では、旧バージョンの macOS 用 GSI-OpenSSH を新バージョンに更新する手順を説明します。
説明では以下の名前を使用します。実際に使用するバージョンで読み替えてください。
tarball 名
新バージョン
gsi-openssh-for-macOS-20240902.tar.gz
旧バージョン
gsi-openssh-for-macOS-20230110.tar.gz
4.1 アップデート手順¶
ターミナルを起動します。操作はすべてターミナル上で行います。
/usr/local/globus-6 ディレクトリのアプリケーション (例 : /usr/local/globus-6/bin/gsissh) で実行中のものがあれば、すべて停止してください。
crontab から fetch-crl.sh の設定を削除します。下記コマンドを実行します。
% /usr/local/globus-6/share/hpci/set-fetch-crl.sh off
実行すると、実際に crontab に登録された内容を標準出力に出力します (既存のエントリも含めてすべて出力します)。/usr/local/globus-6/share/hpci/fetch-crl.sh を実行するエントリが消去されていることをご確認ください。
変更前の内容をバックアップファイル crontab.bak としてカレントディレクトリに出力します。不要ならば削除してください。
旧バージョンをインストールした /usr/local/globus-6 ディレクトリを退避するため改名します。ここでは /usr/local/globus-6.20230110 とします。
% cd /usr/local/ % sudo mv globus-6 globus-6.20230110
「 2.2 インストール手順 」の手順に従って gsi-openssh-for-macOS-20240902.tar.gz を /usr/local/globus-6 ディレクトリの下に展開します。
旧バージョンで使用した /usr/local/globus-6.20230110/share/certificates にある CA 証明書等のファイルを、必要に応じて /usr/local/globus-6/share/certificates/ にコピーしてください。
旧バージョンで使用した設定ファイル ssh_config を変更している場合は、変更内容を新バージョンの設定ファイル ssh_config に反映してください。
「 CRL の定期更新設定 」の手順に従って HPCI 認証局の CRL の定期更新を設定します。
退避した旧バージョンを削除します。
% cd /usr/local/ % rm -rf globus-6.20230110
アップデート手順は以上です。