SSH Kütüphanesi
"Dinamik bir kütüphaneyi tanımlarken sınıf isminin başına Internal ön eki getirirerek statik erişimli hale getirebilirsiniz. "
SSH (Secure Shell) güvenli veri iletimi için kriptografik ağ protokolüdür. Ssh ile ağa bağlı olan iki bilgisayar arasında veri aktarımı güvenlik kanalı üzerinden güvensiz bir ağda yapılır. Bu durumda ağda Ssh ile haberleşen makinelerden biri ssh sunucusu diğeri ssh istemcisi olur. Bu protokol şartları SSH-1 ve SSH-2 olmak üzere iki önemli sürüm üzerinden birbirinden ayrılır.
Ssh kabuk hesabına erişim için Unix ve benzeri işletim sistemlerinde protokolün en iyi uygulaması olarak bilinir, ama aynı zamanda Windows üzerindeki hesaplara erişim için de kullanılabilir. Ssh Telnet ve diğer uzaktan kabuğa erişim yapan güvensiz protokollerin (Berkeley rsh ve rexec protokolü gibi) yerine güvenli veri iletimini sağlaması için tasarlanmıştır.
ZN Framework'te de SSH'ın nasıl kullanılacağına dair anlatıma yer vermeye çalışacağız.
# Kurulum
ZN dağıtımları için kurulum gerekmez.
↓ composer require znframework/package-remote
# Yapılandırma
Aşağıda ssh bağlantı ayarlarını yapılandırmak için kullanılan dizi gösterilmiştir.
SSH | |
string $host = '' | Host adı. |
string $user = '' | Kullanıcı adı. |
string $password = '' | Kullanıcı şifresi. |
int $port = 22 | Bağlantı portu. |
array $methods = [] | Metotlar. |
array $callbacks = [] | Geri çağrım işlevleri. |
# Yöntemler
SSH::command(string $command) : this |
SSH::run(string $command = NULL) : resource |
SSH::output(int $length = 4096) : string |
SSH::upload(string $localPath, string $remotePath) : bool |
SSH::download(string $remotePath, string $localPath) : bool |
SSH::createFolder(string $path, int $mode = 0777, bool $recursive = true) : bool |
SSH::deleteFolder(string $path) : bool |
SSH::deleteFile(string $path) : bool |
SSH::rename(string $oldName, string $newName) : bool |
SSH::permission(string $path, int $type = 0775) : bool |
SSH::new(array $config) : this |
# Command
Komut satırı çalıştırmak için kullanılır. Tek satır veya command() yönteminin birden fazla kullanımı ile çoklu komut gönderimi sağlayabilirsiniz.
string $command | Çalıştırılacak komut. |
return this |
Kullanımı
SSH::command('/usr/local/bin/php -i') ->command('/usr/bin/ls public_html/images') ->run();
# Run
Gönderilen komutları çalıştırmak için kullanılır. Nihai yöntem olarak kullanılır.
string $command = NULL | command() işlevinin alternatifidir. Kullanımı zorunlu değildir. |
return resource |
Kullanımı
SSH::command('/usr/local/bin/php -i') ->command('/usr/bin/ls public_html/images') ->run();
# Output
İşlemlerin bitiminde sonucu ekrana bastırmak için kullanılır.
int $length = 4096 | Çıktının byte cinsinden uzunluğu yada kaç karakter uzunlukta olacağı. |
return string |
Kullanımı
SSH::output();
# Upload
Sunucuya dosya yüklemek için kullanılır.
string $localPath | Yüklenecek dosya. |
string $remotePath | Sunucuda nereye yüklenecek. |
return bool |
Kullanımı
SSH::upload('local/example.txt', 'remote/example.txt');
# Download
Sunucudan dosya indirmek için kullanılır.
string $remotePath | Sunucuda nereye yüklenecek. |
string $localPath | Yüklenecek dosya. |
return bool |
Kullanımı
SSH::upload('remote/example.txt', 'local/example.txt');
# CreateFolder
Sunucuda dizin oluşturmak için kullanılır.
string $path | Oluşturulacak dizin. |
int $mode = 0777 | Dosya oluşturma izni. |
bool $recursive = true | İç içe dizin oluşturulabilme. |
return bool |
Kullanımı
SSH::createFolder('remote/example');
# DeleteFolder
Sunucudan dizin silmek için kullanılır.
string $path | Oluşturulacak dizin. |
return bool |
Kullanımı
SSH::deleteFolder('remote/example');
# DeleteFile
Sunucudan dosya silmek için kullanılır.
string $path | Silinecek dosya. |
return bool |
Kullanımı
SSH::deleteFile('remote/example.txt');
# Rename
Sunucuda yer alan dosya veya dizin adını değiştirmek için kullanılır.
string $oldName | Dosyanın eski adı. |
string $newName | Dosyanın yeni adı. |
return bool |
Kullanımı
SSH::rename('remote/example.txt', 'remote/new-example.txt');
# Permission
Dosyanın yetki modunu değiştirmek için kullanılır.
string $path | Dosya adı. |
int $type = 0775 | Dosya modu. |
return bool |
Kullanımı
SSH::permission('remote/example.txt', 0644);
# New
Sunucuya yapılandırma dosyası bağlantı ayarları dışında yeni bir bağlantı sağlamak için kullanılır.
array $config | Bağlantı ayarları. |
return this |
Kullanımı
$config = [ 'host' => 'localhost', 'user' => 'test', 'password' => '1234' ]; $dssh = SSH::new($config); $dssh->command('usr/local/bin/php -i')->run();