cari
Rumahpembangunan bahagian belakangtutorial phpPHP Master | Menggunakan SSH dan SFTP dengan PHP

PHP Master | Using SSH and SFTP with PHP

mata teras

    PHP's SSH2 Extension (pembalut untuk LIBSSH2) menyediakan pelbagai fungsi untuk memindahkan fail dengan selamat menggunakan protokol seperti SCP dan SFTP. Pakej SSH2 diperlukan untuk dipasang untuk menggunakan fungsi ini.
  • Pengesahan boleh dicapai menggunakan nama pengguna/kata laluan atau pengesahan utama awam/swasta. Fungsi
  • dan ssh2_auth_password() mengembalikan nilai boolean yang menunjukkan sama ada pengesahan berjaya. ssh2_auth_pubkey_file()
  • Selepas pengesahan yang berjaya, anda boleh menggunakan fungsi SCP untuk melaksanakan operasi pemindahan fail. Fungsi SFTP menyediakan lebih banyak ciri, termasuk menukar keizinan fail atau direktori, mendapatkan maklumat mengenai fail, membuat direktori, menamakan semula projek, dan memadam projek.
  • Artikel ini menyediakan coretan kod untuk membuat kelas tambahan untuk memudahkan pelaksanaan perintah ini, termasuk kelas untuk melaksanakan panggilan SCP dan panggilan SFTP, kelas induk untuk fungsi umum, dan merangkumi kelas pengesahan (kata laluan) dan kunci).
Di dunia hari ini, integrasi pihak ketiga dan perkongsian kandungan sangat biasa, jadi penting untuk memahami dan menggunakan protokol seperti SCP dan SFTP. Pelanjutan SSH2 PHP (pembalut untuk LIBSSH2, melaksanakan protokol SSH2) menyediakan pelbagai fungsi yang boleh digunakan untuk memindahkan fail dengan selamat. Untuk memulakan fungsi ini, anda pasti perlu memasang pakej SSH2. Oleh kerana ia adalah lanjutan PECL, proses pemasangan bergantung kepada sistem operasi yang anda pilih. Sila ikuti panduan pada php.net.

Buat sambungan

mari kita mulakan dengan menyambung ke perkhidmatan SSH. Sangat mudah untuk mewujudkan sambungan:

<?php
$conn = ssh2_connect('example.com', 22);
ssh2_auth_password($conn, 'username', 'password');
?>
Sesetengah pentadbir lebih suka menggunakan kunci awam dan swasta untuk mengesahkan log masuk. Jika perkhidmatan dikonfigurasikan dan anda ingin menyambung dengan cara ini, anda harus menggunakan kaedah berikut sebaliknya:

<?php
$conn = ssh2_connect('example.com', 22);
ssh2_auth_pubkey_file(
    $conn,
    'username',
    '/home/username/.ssh/id_rsa.pub',
    '/home/username/.ssh/id_rsa'
);
?>
sama ada anda menggunakan nama pengguna/kata laluan atau pengesahan utama awam/swasta,

dan ssh2_auth_password() mengembalikan nilai boolean yang menunjukkan sama ada pengesahan berjaya. ssh2_auth_pubkey_file()

Jalankan arahan asas

Selepas berjaya mengesahkan identiti pelayan, anda boleh melakukan operasi pemindahan fail. Fungsi SCP membolehkan anda menghantar atau menerima fail seperti ini:

<?php
// 发送文件
ssh2_scp_send($conn, '/local/filename', '/remote/filename', 0644);

// 获取文件
ssh2_scp_recv($conn, '/remote/filename', '/local/filename');
?>

Terdapat juga parameter tambahan yang anda boleh menentukan kebenaran fail apabila menyalin fail ke pelayan jauh. Fungsi SFTP menyediakan lebih banyak fungsi; Mereka bekerja sama dengan fungsi SCP di atas, tetapi sebelum menggunakan fungsi ini, sambungan tambahan mesti dibuat melalui ssh2_scp_send(): ssh2_sftp()

<?php
$sftp = ssh2_sftp($conn);

// 创建一个新文件夹
ssh2_sftp_mkdir($sftp, '/home/username/newdir');

// 重命名文件夹
ssh2_sftp_rename($sftp, '/home/username/newdir', '/home/username/newnamedir');

// 删除新文件夹
ssh2_sftp_rmdir($sftp, '/home/username/newnamedir');

// 创建符号链接
ssh2_sftp_symlink($sftp, '/home/username/myfile', '/var/www/myfile');

// 删除文件
ssh2_sftp_unlink($sftp, '/home/username/myfile');
?>

menerima sumber sambungan dan mengembalikan sumber SFTP untuk panggilan masa depan ssh2_sftp(). Panggilan ini kemudian mengembalikan nilai boolean, yang membolehkan anda menentukan sama ada operasi itu berjaya. ssh2_sftp_*

menggunakan fungsi pembalut

Apabila tiada fungsi pengurusan fail tertentu di SFTP atau SCP, biasanya anda boleh menggunakan pembalut aliran untuk menggunakan fungsi sistem fail teras. Berikut adalah beberapa contoh:

<?php
$conn = ssh2_connect('example.com', 22);
ssh2_auth_password($conn, 'username', 'password');
?>

Sebelum melakukan mana -mana panggilan ini, anda mesti menyambung ke pelayan SSH dan SFTP kerana ia menggunakan pembolehubah $sftp yang telah dibuat sebelumnya.

Mengintegrasikan semua Kandungan

Sekarang anda boleh menyambung, mengesahkan identiti, dan menjalankan arahan pada pelayan SSH, kami boleh membuat beberapa kelas tambahan untuk memudahkan pelaksanaan perintah ini: kelas untuk melaksanakan panggilan SCP dan kelas untuk panggilan SFTP, kelas untuk Melaksanakan panggilan SSH, kelas induk untuk fungsi umum dan beberapa kelas untuk merangkumi maklumat pengesahan (kata laluan dan kunci). Mari kita buat pertama kali membuat kelas pengesahan, kerana ia akan digunakan oleh kelas lain.

(kod kelas PHP berganda yang disediakan dalam artikel itu ditinggalkan di sini kerana artikel itu terlalu panjang, tetapi logik terasnya telah ditunjukkan dalam keterangan di atas)

Ringkasan

Apabila sambungan SSH2 PHP dipasang, ia membolehkan skrip anda menyambung ke pelayan SSH2. Anda boleh mengambil kesempatan daripada kelas mudah yang memudahkan kod yang melaksanakan panggilan SFTP atau SCP, atau jika perpustakaan tidak menyediakan fungsi tertentu, anda boleh menggunakan kebanyakan operasi sistem fail teras dengan memanfaatkan fungsi pembungkus SSH2.

(bahagian FAQ yang disediakan dalam artikel itu ditinggalkan di sini kerana artikel itu terlalu panjang, tetapi logik terasnya telah ditunjukkan dalam keterangan di atas)

Atas ialah kandungan terperinci PHP Master | Menggunakan SSH dan SFTP dengan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Bekerja dengan Data Sesi Flash di LaravelBekerja dengan Data Sesi Flash di LaravelMar 12, 2025 pm 05:08 PM

Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API RESTCurl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API RESTMar 14, 2025 am 11:42 AM

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Pembalakan PHP: Amalan Terbaik untuk Analisis Log PHPPembalakan PHP: Amalan Terbaik untuk Analisis Log PHPMar 10, 2025 pm 02:32 PM

Pembalakan PHP adalah penting untuk memantau dan menyahpepijat aplikasi web, serta menangkap peristiwa kritikal, kesilapan, dan tingkah laku runtime. Ia memberikan pandangan yang berharga dalam prestasi sistem, membantu mengenal pasti isu -isu, dan menyokong penyelesaian masalah yang lebih cepat

Respons HTTP yang dipermudahkan dalam ujian LaravelRespons HTTP yang dipermudahkan dalam ujian LaravelMar 12, 2025 pm 05:09 PM

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

12 skrip sembang php terbaik di codecanyon12 skrip sembang php terbaik di codecanyonMar 13, 2025 pm 12:08 PM

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Terangkan konsep pengikatan statik lewat dalam PHP.Terangkan konsep pengikatan statik lewat dalam PHP.Mar 21, 2025 pm 01:33 PM

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Menyesuaikan/Memperluas Rangka Kerja: Cara Menambah Fungsi Custom.Menyesuaikan/Memperluas Rangka Kerja: Cara Menambah Fungsi Custom.Mar 28, 2025 pm 05:12 PM

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna