PHPでリモートサーバへssh接続でログインして、リモートサーバ内でシェルのコマンドを実行する方法。
今回は、公開鍵認証で接続した。もちろん、ユーザ名とパスワードで接続することもできる。
キーペアの準備
事前に、キーペアを用意し、公開鍵をリモートのサーバへ登録しておく。
もちろん、秘密鍵は他の人に読めるようにしておいてはいけない。
PHPで接続する際は、どちらも必要になるので、ローカルのサーバに用意しておく。
ソースコード
ソースコードは以下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
function ssh_exec_test() { $hostname = 'hostname'; $pubkey = '/home/testuser/.ssh/id_rsa_test.pub'; $prikey = '/home/testuser/.ssh/id_rsa_test'; $username = 'testuser'; $conn = ssh2_connect($hostname); $isSuccess = ssh2_auth_pubkey_file($conn, $username, $pubkey, $prikey); if (!$isSuccess) { return false; } $stream = ssh2_exec($conn, 'pwd'); stream_set_blocking($stream, true); $result = stream_get_contents($stream); fclose($stream); var_dump($result); } |
コメント