2016-06-22 5 views
1

sshを使用して別のサーバに接続している間に、リモートサーバでコマンドを実行するために 'EOF'しかし、彼らはリモートサーバー上でコマンドを実行するのに失敗しています。sshは別のサーバ上のユーザに接続し、そのユーザとしてシェルコマンドを実行します

また、パスワードなしのssh接続が有効でない場合、パスワードを入力せずにスクリプトからパスワードを入力する方法はありますか? ssh-を使用して、その後マシン間のキーを使用.. のssh-keygenは使用してキーを生成し、リモートサーバーにコピー -

$ su - oracle < passwd.txt 
standard in must be a tty 
+0

エラーメッセージと実行された実際のコマンドを追加してください(コピー&ペースト、再入力はしないでください)。 – Kusalananda

+0

エラーが発生しましたsshが別のサーバに接続しているうちに取得しています。 –

+0

'sshpass'や' expect'の使用を検討してください。この[post](http://stackoverflow.com/a/27994731/1328439)を参照してください。 –

答えて

0

パスワード少ないconectivityは(はるかに安全...キー認証が有効になっていると仮定して)有効になっていない場合コピーID

+0

パスワードなしの接続を有効にせずにこれを実行しようとしています –

0

これを行うには、そのコマンドに対してパスワードレスのsudoを設定するのがよいでしょう。

あなたはそれを持っていない場合はsudoersファイルがvisudoコマンドでファイルを変更し、そのような行を追加し、sudoコマンドをインストールします。

youruser ALL=(oracle) NOPASSWD: the command you want to launch 

例えば

girish ALL=(oracle) NOPASSWD: /bin/stop-process 

を次にあなたのスクリプトでは、次のようにしてください:

パスワードなし病気に尋ねられる

+0

こんにちは。私はパスワードの少ない接続でこのサンプルスクリプトを使用することを認識しています。しかし、パスワードをスクリプトやOSの別ファイルに保存する方法を探しています。私たちのサーバーでは、あらゆるコマンドに対してパスワードの少ない接続を有効にしないというセキュリティ手段があります。 –

+1

セキュリティは、パスワードをプレーンテキストでスクリプトに保存しないことです。それを可能にする特別なユーザーアカウントをssh-keyで作成すると、できるだけ安全になります。 – blue112

+0

私が示した例では、現在のユーザーだけが開くことができるテキストファイルにパスワードを保存しましたが、安全な場所を知っています。私はそのテキストファイルを使用してログインする方法を見つけようとしています –

関連する問題