SSH Kütüphanesi


    × Bunları biliyor muydunuz?
"ZN Framework 2011 senesinden beri geliştirilmeye devam etmektedir."


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 SE ve ZN CE dağıtımları için terminal kurulum komutu.

↓ 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.

Dosya: Config/Services.php
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


This differentConnect / new(Array $config)
This command(String $command)
Mixed run(String $command = NULL)
String output(Int $length = 4096)
Bool upload(String $localPath, String $remotePath)
Bool download(String $remotePath, String $localPath)
Bool createFolder(String $path, Int $mode = 0777, Bool $recursive = true)
Bool deleteFolder(String $path)
Bool deleteFile(String $path)
Bool rename(String $oldName, String $newName)
Bool permission(String $path, Int $type = 0775)

 

 

# DifferentConnection (ZN >= 4.0.0) / New (ZN >= 5.8.6.3)


Sunucuya yapılandırma dosyası bağlantı ayarları dışında farklı bir sağlamak için kullanılır.

Parametreler

Array $config Bağlantı ayarları.
Return This

Kullanımı

$config = 
[
    'host'     => 'localhost',
    'user'     => 'test',
    'password' => '1234'
];

$dssh = SSH::differentConnection($config);
$dssh->command('usr/local/bin/php -i')->run();
5.8.6.3 Güncellemesi

Bu güncelleme ile differentConnection() yerine new() yöntemi de kullanılabilir.

$dssh = SSH::new(['host' => 'localhost', 'user' => 'test', 'password' => '1234']);

 

 

# Command (ZN >= 3.0.6)


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.

Parametreler

String $command Çalıştırılacak komut.
Return This

Kullanımı

SSH::connect($config)
   ->command('/usr/local/bin/php -i')
   ->command('/usr/bin/ls public_html/images')
   ->run();

 

 

# Run (ZN >= 3.0.6)


Gönderilen komutları çalıştırmak için kullanılır. Nihai yöntem olarak kullanılır.

Parametreler

String $command = NULL command() işlevinin alternatifidir. Kullanımı zorunlu değildir.
Return This

Kullanımı

SSH::connect($config)
   ->command('/usr/local/bin/php -i')
   ->command('/usr/bin/ls public_html/images')
   ->run();

 

 

# Output (ZN >= 3.0.6)


İşlemlerin bitiminde sonucu ekrana bastırmak için kullanılır.

Parametreler

Int $length = 4096 Çıktının byte cinsinden uzunluğu yada kaç karakter uzunlukta olacağı.
Return String

Kullanımı

SSH::output();

 

 

# Upload (ZN >= 3.0.6)


Sunucuya dosya yüklemek için kullanılır.

Parametreler

String $localPath Yüklenecek dosya.
String $remotePath Sunucuda nereye yüklenecek.
Return Bool

Kullanımı

SSH::upload('local/example.txt', 'remote/example.txt');

 

 

# Download (ZN >= 3.0.6)


Sunucudan dosya indirmek için kullanılır.

Parametreler

String $remotePath Sunucuda nereye yüklenecek.
String $localPath Yüklenecek dosya.
Return Bool

Kullanımı

SSH::upload('remote/example.txt', 'local/example.txt');

 

 

# CreateFolder (ZN >= 3.0.6)


Sunucuda dizin oluşturmak için kullanılır.

Parametreler

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 (ZN >= 3.0.6)


Sunucudan dizin silmek için kullanılır.

Parametreler

String $path Oluşturulacak dizin.
Return Bool

Kullanımı

SSH::deleteFolder('remote/example');

 

 

# DeleteFile (ZN >= 3.0.6)


Sunucudan dosya silmek için kullanılır.

Parametreler

String $path Silinecek dosya.
Return Bool

Kullanımı

SSH::deleteFile('remote/example.txt');

 

 

# Rename (ZN >= 3.0.6)


Sunucuda yer alan dosya veya dizin adını değiştirmek için kullanılır.

Parametreler

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 (ZN >= 3.0.6)


Dosyanın yetki modunu değiştirmek için kullanılır.

Parametreler

String $path Dosya adı.
Int $type = 0775 Dosya modu.
Return Bool

Kullanımı

SSH::permission('remote/example.txt', 0644);