今回は Spark の環境で SSH User の作成方法を案内します。
2 通りあります。1 つはパスワードで認証するユーザーを利用する方法。2 つめはパスワードなしの公開鍵で認証する方法となります。
▼1. SSH とは
Secure Shell Protocol (SSH) は、暗号ネットワークプロトコルで、セキュアでないネットワーク間のネットワークサービスの操作を安全に行うことができます。主に、リモートログインや、コマンドの実行に利用されます。ユーザー認証にはパスワードを利用した方法、公開鍵を利用した公開鍵認証などあります。 参考情報 Secure Shell – Wikipedia
▼2. 事前準備
Apache Spark クラスターを作成します。詳細は以下。
Apache Spark インストール – 3 ノード No.29
▼3. SSH での接続
2 通りの SSH の接続方法を紹介します。
- パスワードでの接続
- パスワードなし公開鍵の接続
3-1. パスワードでの接続
3-1-1. グループ追加
グループ名 testgroup
sudo groupadd testgroup
3-1-2. ユーザーを追加
ユーザー名 testusera,-g でグループを指定します。 -m はユーザーのフォルダを作成するために指定しています。
sudo useradd testusera -g testgroup -m
3-1-3. ユーザパスワード変更
暗号化したパスワードを生成し指定するため openssl を使っています。
PASS=yourpassword sudo usermod --password $(echo $PASS | openssl passwd -1 -stdin) testusera
3-1-4. 作成したユーザーを確認
Id testusera

3-1-5. .ssh フォルダの作成
sudo mkdir /home/testusera/.ssh
sudo chown -R testusera /home/testusera/.ssh
3-1-6. 1-1 から 1-5 を他のマシンでも実施
今回の Saprk の環境では namenode 1 台と datanode 2 台の、トータル 3 台でユーザーを作成しました。
3-1-7. sshで接続テスト
192.168.1.1 に接続
ssh testusera@192.168.1.1
3-2. パスワードなし公開鍵の接続
3-2-1. SSH の秘密鍵、公開鍵を生成するコマンドを実行
複数のユーザーの鍵を生成するためファイル名を指定します。以下のコマンドではtestusera_wn1_ras.pub や testusera_wn1_rsa のファイルが生成されます。
ssh-keygen -f .ssh/testuserb_wn1_rsa

$ ssh-keygen -f .ssh/testuserb_wn1_rsa Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in .ssh/testuserb_wn1_rsa Your public key has been saved in .ssh/testuserb_wn1_rsa.pub The key fingerprint is: xxxx xxx@xxx The key's randomart image is: +---[RSA 3072]----+ | .o. . | | ....+ . | |*.= + = . | |*O E + * | |o=B B * S | |+o X + o | |o o + o | | * + | | o.Bo. | +----[SHA256]-----+
3-2-2. 生成した公開鍵を接続先にコピー
ユーザー名 testusera, 接続先のマシンの IP Address 192.168.1.2 の場合
ssh-copy-id -i .ssh/testuserb_wn1_rsa.pub testuserb@192.168.1.2 -f

$ ssh-copy-id -i .ssh/testuserb_wn1_rsa.pub testuserb@192.168.1.2 -f /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/testuserb_wn1_rsa.pub" testuserb@192.168.1.2's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'testuserb@192.168.1.2'" and check to make sure that only the key(s) you wanted were added.
3-2-3. 公開鍵を生成したマシンに戻り、ssh でログインしパスワードなしでログインできるか確認
ユーザー名 testusera, 接続先のマシンの IP Address 192.168.1.1 の場合
ssh testusera@192.168.1.1
3-2-4. 2-1 から 2-3 を他のマシンでも実施
▼4. 参考情報
- Apache Spark インストール – 3 ノード No.29
- Set Up Password-less SSH – Hortonworks Data Platform (cloudera.com)
以上です。参考になりましたら幸いです。