私は簡単なリクエストをしています。私はすでに存在するGoogle Compute Engineインスタンスに接続し、コマンドを実行して接続を終了したいと考えています。gceインスタンスに接続してコマンドを実行してください
私は素晴らしいサンプルコードhereをインスタンスの作成と削除に使用しました。
また、完全に動作する起動スクリプトがあります。
今、私はthis articleを読んで、paramikoを使用してインスタンスに接続しています。これは最善のことかもしれないし、そうでないかもしれないので、私が間違った道を行くなら、私を修正してください。今
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(
paramiko.AutoAddPolicy())
ssh.connect('35.***.***.**',username='user',password='pass')
stdin, stdout, stderr = ssh.exec_command("sudo su -")
stdin, stdout, stderr = ssh.exec_command("ls -l")
stdout.readlines()
- 私は私が使用することになっていたユーザ名やパスワードを確認していない:
は、私は、次のサンプルコードを持っています。
このコードを実行すると、自分のルートにファイルとディレクトリのリストが表示されませんが、デフォルトのユーザーアカウントのhome
にファイルとディレクトリのリストが表示されます。
私の目標は、gceインスタンスに接続してコマンドを実行することです。なんらかの理由で、予想以上に厄介です。私はここで何か間違っていますか?
何らかの理由:ここ
私のソリューションは、以下のようなものでしたか?私はGCEに精通していませんが、AWSで、新しいボックスを開くときにルートディレクトリにアクセスするには 'cd ../../'を実行してルートディレクトリにアクセスする必要があります。 –
これはrootとしてコマンドを実行する必要があります: 'sudo -S -i -u root -p '' pwd' – hurturk
@DmitryPolonskiy私の答えはあなたの心に留めていたものですか? –