複数の仮想マシンを互いにSSHで接続
Hadoopでの完全分散を行うにあたり、クラスタ構成をとりあえず実験的にすべて仮想マシンにしてみた時の各仮想マシンのSSHの設定の仕方
環境
- ubuntu 14.04
- ネットワークに関する設定は一切していないと仮定
目標
- SSHで互いのマシンにパスワードなしで接続
まずは、仮想マシンを起動せずに、各仮想マシンの設定を変更する
ネットワーク設定のところから、アダプター1の割り当てがNATであることを確認したら、ポートワーティングを選択
名前:ssh プロトコル:TCP ホストポート:2200 ゲストポート:22
の設定を追加する(ホストポートの番号は各々ご自由に)
次にアダプター2の割り当てをホストオンリーアダプタに設定
以上の設定をしたら、仮想マシンを起動
OSインストール直後はsshd_configはないので、
$ sudo apt-get install openssh-server
を実行。これでSSHサーバーがインストールされる。次にSSHサーバーの設定を行う
# PasswordAuthentication no の記述を確認 # 項目がなければ下手に追加しないほうがいいかもしれない $ cat /etc/ssh/sshd_config # 鍵の作成 $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
これにより ~/.ssh/に秘密鍵id_rsaと公開鍵id_rsa.pubが作成される。このうち、公開鍵を各サーバーに渡すわけだが、まずは.sshディレクトリで
$ touch authorized_keys $ chmod 600 authorized_keys
としてファイルを作り、各サーバーのid_rsa.pubの中身をauthorized_keysに丸々コピーする。これを各サーバーすべて行う。
$ ssh (IPアドレス)
でパスワードなしでつなげることが確認できたら成功