• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シェルスクリプト内で他のサーバへSSH接続)

シェルスクリプトで他のサーバへSSH接続する方法とサーバ内での処理方法について

このQ&Aのポイント
  • シェルスクリプト内で他のサーバへSSH接続し、サーバ内で別のシェルスクリプトを実行する方法について教えてください。
  • 具体的には、作業PCからサーバAへSSH接続し、root権限でスクリプト1を実行し、その中でサーバA内でスクリプト2を実行し、さらにサーバBへSSH接続してroot権限でスクリプト3を実行する手順について詳しく教えてください。
  • また、参考になるコマンドやサイトがあれば教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

普通にsshでできるはずですが?サーバーA、サーバーBともにopensshはインストールしてありますよね?もし、インストールしていない場合、「Linux openssh インストール」などで検索してみましょう。 sshのマニュアルで、引数に[command]とあるのを見たことありませんか? http://www.openbsd.org/cgi-bin/man.cgi?query=ssh&sektion=1 これは、例えば次のコマンドを実行すると、user0としてログインした上でlsを実行します。 $ ssh user0@host ls 同様にscript3.shをroot権限で実行するなら、次で良いでしょう。 $ ssh root@host /where/you/put/script3.sh ただ、root権限でのログインをするにはサーバーBにてroot権限でのログインを可能とするよう設定を変更する必要があります。 /etc/sshなどにあるsshd_configを編集し、PermitRootLoginを設定してください。 http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&sektion=5 サーバーBのルート権限が奪取されてもあまり気にしないならここでPermitRootLogin yesとしても良いかもしれませんが、おっしゃるような用途で使う場合、PermitRootLogin forced-commands-onlyと設定するのが普通です。 この作業をするためには当然、ssh-keygenでログインするときに使う公開鍵を作っておき、サーバーBの~root/.ssh/authorized_keysに置いてあると思います。(何を言っているのかわからないなら、「ssh 公開鍵 使い方」などで検索してみてください。)このauthorized_keysで、ログインに使用する公開鍵の前にcommand="/where/you/put/script3.sh"を書いておくと、その公開鍵を使ったログインではscript3.shしか実行できなくなり、より安全です。 http://chihungchan.blogspot.jp/2008/08/restrict-ssh-to-run-specific-command.html あと、これも参考になるかもしれません。 http://oreilly.com/catalog/sshtdg/chapter/ch08.html 頑張って。

hiiragi2755
質問者

お礼

ご回答ありがとうございます! ログインはroot以外で行う必要があるんです・・・ 今日もお勉強です。

その他の回答 (2)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.3

>もし、sudoを使用して私がやりたい事の参考になるページをご存知でしたら教えてください。 sudoの使い方調べられましたか? sudoの設定をしておくだけなので、sudoの設定の仕方も含めた使い方の載ってるサイトならどこでも参考になるかと思います。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

ログイン自体はroot以外で行う必要がある場合は、 ・sudo を使って実行するスクリプトをroot権限で実行するようにする ・expect を使ってrootにスイッチする などになるかと思います。

hiiragi2755
質問者

お礼

ご回答ありがとうございます。 自分で調べた限りでは、sudo を使うのかな?と思っていました。 しかし、記載するシェルスクリプトのイメージがわかず足踏みしています。 もし、sudoを使用して私がやりたい事の参考になるページをご存知でしたら教えてください。 expect は知りませんでした。 セキュリティ面のメリット・デメリットを含めて調べてみます。

関連するQ&A