2017-10-10 18 views
1

現在、私はロードバランシングPythonスクリプトを作成中です。このスクリプトでは、サーバー上のファイルを更新する必要があります。私の計画は、私のpythonスクリプトにbashスクリプトを呼び出させることです。私は手動でsshを実行できますが、スクリプトからは許可されません - Permission denied(publickey)

このbashスクリプトでは、サーバーにsshしたいのですが、ファイルに対してawkコマンドを実行してからログアウトしてください。

Google Cloud Platformを使用してsshキーを設定しているので、現在このサーバに手動でsshすることができます。私は

'ssh [email protected]' 

を実行bashスクリプトを実行しようとする。しかし、私はエラーを取得する:許可拒否されました(公開鍵)

は、私はここで何をしないのですか?

+0

このダウンを実行していない、本当に上のトピックsshなどとの相互作用とは対照的に、プログラミングに焦点を当てたサイト上ユーザーまたはシステム管理者)。問題が再現され、ログをコーディネートする条件で 'ssh -vv username @ ip'を実行することは、開始する場所になります。 (クライアント上のそれらのログを調べるときにすべてがうまくいくように見える場合は、サーバー側でデバッグレベルをバンプすることは継続する場所になります)。 –

+0

質問を編集して、スクリプトの関連部分を含めてください。また、このsshインスタンスがどのように認証されるべきか、すなわち、どの鍵ファイルが使用されるべきか、そしてその目的のためにその鍵を使用するように設定された方法について説明する必要があります。 .sshディレクトリとキーファイルの 'ls -la'出力を持つと便利です。 – Kenster

答えて

1

paramikoをSSH経由で接続してみませんか? this gistに示すように、キーを指定することができます。

これを使用すると、サーバーで実行するコマンドを簡単に設定できます。

+0

提案していただきありがとうございます。私は昨晩パラミコを見ていましたが、私はこのアイデアを見ていると思っていました。あなたの要点は素晴らしいです、チップのおかげで! – mcdito13

+0

魅力的な作品です。 – mcdito13

+0

@ mcdito13良い! – montudor

1

あなたの秘密鍵はホームディレクトリにあり、pythonは制限付きユーザーとしてbashプロセスを作成しています。まだ秘密鍵を含めるようにスクリプトを変更してください。まだ動作しない場合は、その権限変更

が明示的に秘密鍵を追加するには :与えられた(全体ではなくロッタの詳細を必要とする

ssh -i /path/to/private/key [email protected] 
関連する問題