User Tools

Site Tools


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

概要

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

設定手順

SSHの導入

  1. 管理ノードと計算ノードの両方でSSHをインストールします
    $ sudo apt install ssh
  2. 管理ノードから計算ノードにSSHで接続できるか確認します。@の前は計算ノードのユーザー名、後ろは計算ノードのプライベートIPアドレスを入力します。
    $ ssh username_keisan11@192.168.0.11
    • 計算ノードからログアウトしてヘッドノードに再び戻るには
      $ exit

      とします。

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

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

鍵認証の設定

外部からヘッドノードに接続する際にSSH鍵認証のみを許可するようにします

SSH鍵の作成

  1. (SSHの秘密鍵/公開鍵を持っていない場合)手元のパソコンでSSH鍵を作成します
    $ ssh-keygen
    • このコマンドのあと、SSH秘密鍵のパスワードの設定が要求されるので入力します
    • SSH鍵の保存先は次のとおりです
      • 公開鍵: ~/.ssh/id_rsa.pub
      • 秘密鍵: ~/.ssh/id_rsa
  2. 秘密鍵とディレクトリのパーミッションを設定します
    $ chmod 600 ~/.ssh/id_rsa
    $ chmod 700 ~/.ssh/

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

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

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

セキュリティ上、管理ノードへのログインはSSH鍵認証のみにします

  1. 管理ノードにログインしたまま、次のようにSSHの設定ファイルを書き換えます
    $ sudo vi /etc/ssh/sshd_config
    sshd_config
    (略)
    PubkeyAuthentication yes
    
    # Expect .ssh/authorized_keys2 to be disregarded by default in future.
    AuthorizedKeysFile	.ssh/authorized_keys .ssh/authorized_keys2
    (略)
    # 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_rsa username_kanri@xxx.xxx.xxx.xxx

configファイルの設定

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

#計算ノード
Host keisan11
  HostName      192.168.0.11
  User          username_keisan11
  ProxyCommand  ssh -W %h:%p kanri
  
Host keisan12
  HostName      192.168.0.12
  User          username_keisan12
  ProxyCommand  ssh -W %h:%p kanri
  
#以下略

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

$ ssh kanri      # 管理ノードにつなぐ場合
$ ssh keisan11   # 計算ノードにつなぐ場合

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

自作クラスタ計算機/sshの基本設定.txt · Last modified: 2022/04/04 20:58 by koudai