PHPでsshでリモートのサーバへ接続し、ファイルの送受信をする。
今回は、公開鍵認証で接続した。もちろん、ユーザ名とパスワードで接続することもできる。
キーペアの準備
事前に、キーペアを用意し、公開鍵をリモートのサーバへ登録しておく。
もちろん、秘密鍵は他の人に読めるようにしておいてはいけない。
PHPで接続する際は、どちらも必要になるので、ローカルのサーバに用意しておく。
ソースコード
ソースコードは以下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
function ssh_file_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; } $remotepath = '/home/testuser/aaa.txt'; $localpath = '/home/testuser/bbb.txt'; //ファイル受信 ssh2_scp_recv($conn, $remotepath, $localpath); //ファイル送信 ssh2_scp_send($conn, $localpath, $remotepath); } |
コメント