User Tools

Site Tools


自作クラスタ計算機:sshの基本設定

概要

  • SSHを利用して、ノード間の通信や外部からクラスタ計算機への接続ができるようにします
  • セキュリティ上の安全のため、外部からのログインは鍵認証のみで行うようにします
  • 管理ノードにグローバルIPアドレスが設定されてない場合は、外部から管理ノードにSSH接続ができません
  • このページでは、管理ノードの固定IPアドレスを xxx.xxx.xxx.xxx とします

設定手順

SSHの導入

  1. (UFWを使用している場合)外部から管理ノードへのSSHによるアクセスを許可します。
    $ sudo ufw allow ssh
  2. 管理ノードにSSHをインストールします(計算ノードのOSインストール時に導入していなければ、計算ノードにも)
    $ sudo apt install ssh
  3. 管理ノードから計算ノードにSSHで接続できるか確認します。@の前は計算ノードのユーザー名、後ろは計算ノードのプライベートIPアドレスを入力します。
    $ ssh username_node11@192.168.0.11
    • 計算ノードからログアウトしてヘッドノードに再び戻るには
      $ exit

      とします。

  4. (管理ノードにグローバルIPアドレスを設定した場合)別途インターネットに接続されたパソコンでターミナルを開き、外部からSSHで管理ノードに接続できるか確認します。@の前は管理ノードのユーザー名、後ろはIPアドレスまたはFQDNを入力します
    $ ssh username_head@xxx.xxx.xxx.xxx

これで外部のパソコンから管理ノードを操作できるようになったので、以後は手元のパソコンを使用して設定を行います

鍵認証の設定

外部から管理ノードに接続する際にSSH鍵認証を使用します。手元のパソコンで作業します。

SSH鍵の作成

  1. (SSHの秘密鍵/公開鍵を持っていない場合)手元のパソコンでSSH鍵を作成します
    $ ssh-keygen
    • このコマンドのあと、SSH秘密鍵のパスワードの設定が要求されるので入力します
    • SSH鍵の保存先は次のとおりです
      • 公開鍵: ~/.ssh/id_ed25519.pub
      • 秘密鍵: ~/.ssh/id_ed25519
    • OpenSSH 9.5以降は暗号方式のデフォルトがRSAからED25519に変更になりました。できるだけED25519に切り替えていきましょう。
  2. 秘密鍵とディレクトリのパーミッションを設定します
    $ chmod 600 ~/.ssh/id_ed25519
    $ chmod 700 ~/.ssh/

管理ノードへ公開鍵を設置

  1. 作成した公開鍵を、scpコマンドを使って管理ノードに送ります
    $ scp ~/.ssh/id_ed25519.pub username_head@xxx.xxx.xxx.xxx:/home/username_head/.ssh/authorized_keys
  2. 管理ノードにログインし、公開鍵とディレクトリのパーミッションを設定します
    $ ssh username_head@xxx.xxx.xxx.xxx
    $ chmod 600 ~/.ssh/authorized_keys
    $ chmod 700 ~/.ssh/

ログインを鍵認証のみに設定

セキュリティ上、管理ノードへのログインはSSH鍵認証のみが安全です。

  1. 管理ノードにログインしたまま、次のようにSSHの設定ファイルを書き換えます
    $ sudo nano /etc/ssh/sshd_config
    sshd_config
    (略)
    # To disable tunneled clear text passwords, change to no here!
    PasswordAuthentication no 
    PermitEmptyPasswords no
    (略)
  2. SSHを再起動します
    $ sudo /etc/init.d/ssh restart
  3. 管理ノードからログアウトします
    $ exit

鍵認証によるログイン

手元のパソコンからヘッドノードにログインするには、次のようにします。 オプション-iで秘密鍵のパスを指定します。

$ ssh -i ~/.ssh/id_ed25519 username_head@xxx.xxx.xxx.xxx

configファイルの設定

  • 鍵のパスや接続先のアドレスをいちいち打ち込むのは面倒くさいので、 ~/.ssh/config というファイルに設定を書き込んでおくと便利です。
  • ついでにProxyCommandを使って直接計算ノードにログインできるようにします(多段SSH)。
config
#ヘッドノード
Host head
  HostName      xxx.xxx.xxx.xxx
  User          username_head
  IdentityFile  ~/.ssh/id_ed25519

#計算ノード
Host node11
  HostName      192.168.0.11
  User          username_node11
  ProxyCommand  ssh -W %h:%p head
  
Host node12
  HostName      192.168.0.12
  User          username_node12
  ProxyCommand  ssh -W %h:%p head
  
#以下略

次のようにHostを指定するだけでサーバーにログインできます

$ ssh head       # 管理ノードにつなぐ場合
$ ssh node11     # 計算ノード(node11)につなぐ場合

パソコンから管理ノードにログインできるようになったら、あとは遠隔で作業ができます。サーバー室から自分の部屋に戻りましょう。

参考

自作クラスタ計算機/sshの基本設定.txt · Last modified: 2026/07/08 19:01 by koudai