ÝSÝM
- Provided by: manpages-tr (Version: 1.0.5.1-2)
- Report a bug
ssh [ -l kullanýcý ] konakismi | kullanýcý@konakismi [ komut ] ssh [ -afgknqstvxACNTX1246 ] [ -b baðlantý_adresi ] [ -c þifre_belirtimi ] [ -e önceleme_krk ] [ -i kimlik_dosyasý ] [ -l kullanýcý ] [ -m mac_belirtimi ] [ -o seçenek ] [ -p port ] [ -F yapýlandýrma_dosyasý ] [ -L yerelport:uzakkonak:uzakkonakportu ] [ -R uzakport:yerelkonak:yerelkonakportu ] [ -D port ] konakismi | kullanýcý@konakismi [ komut ]
ssh (SSH istemci) uzaktaki bir makinada komut çalýþtýrmak için uzaktaki makinada bir kullanýcý oturumu açmayý saðlayan bir uygulamadýr. rlogin ve rsh'ýn yerini almasý amaçlanmýþtýr. ssh güvenli olmayan bir að üzerindeki güvenilir olmayan iki sistemin þifreli dolayýsý ile güvenli iletiþim kurmalarýný saðlar. X11 baðlantýlarý ve çeþitli TCP/IP baðlantý portlarý da güvenli kanal üzerinden iletilebilirler.
ssh, konakismi ile belirtilen makinaya baðlanýr ve oturum açar. Þayet kullanýcý bir komut belirtmiþ ise, kullanýcýya oturum kabuðu yerine komutun çalýþtýrýldýktan sonraki çýktýsý döndürülür.
Kullanýcý, uzaktaki sisteme kimliðini kanýtlamak zorundadýr ve bunu kullanýlan protokole baðlý olarak farklý yöntemlerle yapabilir:
Ýlk olarak eðer kullanýcýnýn oturum açtýðý sistemin ismi uzaktaki sistemin /etc/hosts.equiv veya /etc/ssh/shosts.equiv dosyalarýnda bulunuyorsa ve her iki taraftaki kullanýcý isimleri ayný ise, kullanýcýn uzak sisteme eriþmesine hemen izin verilir. Ýkinci olarak, eðer .rhosts veya .shosts dosyalarý kullanýcýnýn uzaktaki ev dizininde mevcut ise ve istemci makinanýn adý ile bu makinadaki kullanýcý adý bu dosyalardan birinde var ise, yine kullanýcýn eriþmesine izin verilir. Güvenli olmamamasý nedeni ile bu çeþit kimlik denetiminin kullanmasýna normalde sunucu tarafýndan izin verilmez.
Ýkinci kimlik denetim yöntemi ise rhosts veya hosts.equiv yöntemlerinin RSA tabanlý konak kimlik denetimi ile birlikte kullanýlmasýdýr. Bu þu anlama gelir: eðer eriþime $HOME/.rhosts, $HOME/.shosts, /etc/hosts.equiv veya /etc/ssh/shosts.equiv tarafýndan izin verilmiþ ve buna ek olarak sunucu da istemci anahtarýný doðrulayabiliyorsa (DOSYALAR bölümündeki /etc/ssh/ssh_known_hosts ve $HOME/.ssh/known_hosts dosyalarýnýn açýklamalarýna bakýnýz), ancak o zaman oturum açýlmasýna izin verilir. Bu kimlik denetimi yöntemi sayesinde IP kandýrmaca, DNS kandýrmaca ve yönlendirme kandýrmacanýn sebep olduðu güvenlik açýklarý engellenmiþ olur.
Üçüncü kimlik kanýtlama yöntemi olarak, ssh RSA tabanlý kimlik denetimini destekler. Bu senaryo açýk anahtarlý kriptografiye dayanýr: Þifrelemenin ve þifre çözmenin farklý anahtarlarla yapýldýðý ve þifre çözme anahtarýný þifreleme anahtarýndan türetmeniz mümkün olmadýðý kripto sistemleri vardýr. RSA böyle bir sistemdir. Burada amaç her kullanýcýnýn kimlik denetimi için bir çift genel ve özel anahtar oluþturmasýdýr. Sunucu genel anahtara sahip iken, özel anahtar sadece kullanýcýnýn kendisinde bulunur. $HOME/.ssh/authorized_keys dosyasý eriþim hakký olan genel anahtarlarý listeler. Kullanýcý oturum açmak istediði zaman, ssh kimlik denetimi için hangi anahtar çiftini kullanmak istediðini sunucuya bildirir. Sunucu bu anahtarýn geçerli olup olmadýðýna bakar, þayet geçerli ise kullanýcýya (aslýnda kullanýcý adýna çalýþan ssh'a) kullanýcýnýn genel anahtarý ile þifrelenmiþ bir kimlik sorgusu, rasgele bir sayý gönderir. Þifreli kimlik sorgusu sadece uygun özel anahtar ile çözülebilir. Kullanýcýnýn istemcisi bu kimlik sorgusunu kullanýcýnýn özel anahtarý ile çözer, böylece uygun özel anahtarýn varlýðýný ispatlar (özel anahtarý sunucuya göstermeden).
ssh RSA kimlik denetim protokolünü özdevinimli olarak gerçekleþtirir. Kullanýcý kendi RSA anahtar çiftini ssh-keygen(1) komutunu çalýþtýrarak oluþturur. Bu iþlem sayesinde özel anahtar $HOME/.ssh/identity dosyasýnda ve genel anahtar da $HOME/.ssh/identity.pub doyasýnda saklanýr. Daha sonra kullanýcý identity.pub dosyasýný uzak makinenin kullanýcýnýn ev dizinideki $HOME/.ssh/authorized_keys dosyasýna kopyalamalýdýr. authorized_keys dosyasý geleneksel $HOME/.rhosts dosyasýna karþýlýk gelir ve her satýrý bir anahtar içerir (satýrlar çok uzun olabilmektedir). Sonuçta kullanýcý parola girmeden oturum açmaya hak kazanmaktadýr. RSA kimlik denetimi rhosts kimlik denetimine göre daha güvenlidir.
RSA kimlik denetiminin en uygun kullanýmý bir kimlik denetimi ajaný ile saðlanabilir. Daha fazla bilgi için ssh-agent(1)'a bakýnýz.
Þayet bahsedilen kimlik denetimi yöntemleri hata verirler ise, bu sefer ssh kullanýcýya parola sorar. Parola ana makineye denetim için gönderilir. Fakat bütün iletiþim þifrelendiði için parola aðý dinlemekte olan biri tarafýndan görülemez.
Kullanýcý protokolün 2. sürümünü kullanarak baðlantý kurduðunda benzer kimlik denetimi yöntemleri kullanýlýr. PreferredAuthentications (tercih edilen kimlik kanýtlamalarý) için öntanýmlý deðerler kullanýlarak, istemci öncelikle konak tabanlý kimlik denetimi ile uzaktaki makineye eriþmeye çalýþýr; bu yöntemin baþarýsýz olmasý durumunda, genel anahtarlý kimlik denetimi yöntemi denenir, bu yöntemin de baþarýsýz olmasý durumunda son olarak klavye etkileþimli ve parolalý kimlik denetimi yöntemine baþvurulur.
Genel anahtar yöntemi, bir önceki bölümde anlatýlan RSA kimlik denetimi ile benzerdir ve RSA veya DSA algoritmalarýnýn kullanýlmasýna izin verir: Ýstemci oturum tanýtýcýsýný özel anahtarý ($HOME/.ssh/id_dsa veya $HOME/.ssh/id_rsa) ile imzalar ve sonucu sunucuya gönderir. Sunucu, bu imza ile eþleþen genel anahtarýn $HOME/.ssh/authorized_keys dosyasýnda olup olmadýðýna bakar. Hem anahtarýn listede bulunmasý hem de imzanýn doðru olmasý durumunda istemciye eriþim izni verilir. Oturum tanýtýcý sadece sunucu ve istemci tarafýndan bilinen ortak Diffie-Hellman deðerinden türetilir.
Þayet genel anahtarlý kimlik denetimi baþarýsýz olursa ya da desteklenmiyorsa, kullanýcýnýn kimliðini ispatlamak için kullanýcýnýn parolasý þifrelenerek sunucuya gönderilebilir.
ssh bunlara ek olarak konak tabanlý ve kimlik sorma/yanýt verme kimlik denetimi yöntemlerini de destekler.
Protokol 2 gizlilik ve bütünlük ilkeleri için ek mekanizmalar saðlar. Gizlilik için veri trafiði 3DES, Blowfish, CAST128 veya Arcfour algoritmalarý ile þifrelenir ve bütünlük ilkesi için ise hmac-md5 ya da hmac-sha1 algoritmalarý kullanýlýr. Protokol 1'in baðlantýnýn bütünlüðünü kesinlikle garanti eden bir mekanizmaya gereksinimi olduðu unutulmamalýdýr.
Sunucu, kullanýcýnýn kimliðini onayladýðý takdirde ya kullanýcýnýn belirttiði komutu yürütür ya da sistemde oturum açar ve uzak sistemde kullanýcýnýn normal bir kabuða eriþmesini saðlar. Uzakta çalýþtýrýlacak komut ya da kabukla gerçekleþtirilen bütün iletiþim þifrelenir.
Kullanýcý, sözde uçbirim (normal oturum) saðlanmasý durumunda aþaðýdaki önceleme karakterlerini kullanabilir.
Þayet bir uçbirim saðlanmazsa, oturum saydam olur ve ikili veri güvenilir þekilde aktarýlabilir. Birçok sistemde önceleme karakterini ``none'' þeklinde ayarlamak tty kullanýlsa bile oturumu saydam kýlar.
Uzak sistemdeki komut ya da kabuk sonlandýðýnda oturum sonlanýr ve bütünl X11 ve TCP/IP baðlantýlarý kapatýlýr. Eriþilen makinada çalýþtýrýlan uygulamanýn çýkýþ durumu ssh'ýn çýkýþ durumu olarak döndürülür.
Sözde uçbirim istenmesi durumunda ssh birçok iþlevi bir önceleme karakteri aracýlýðý ile desteker.
Tek bir yaklaþýk iþareti (tilde) ~~ þeklinde ya da yaklaþýk iþaretini aþaðýda belirtilen karakterlerin haricindeki bir karakterin takip etmesi þeklinde gönderilebilir. Önceleme karakterinin önceleme karakteri olarak yorumlanabilmesi karakterden hemen sonra bir satýrsonu karakteri gelmelidir. Önceleme karakteri yapýlandýrma dosyasýndaki EscapeChar yapýlandýrma seçeneði ile ya da komut satýrýnda -e seçeneði ile deðiþtirilebilir.
Desteklenen öncelemler (öntanýmlýnýn '~' olduðu kabulüyle) þunlardýr:
Þayet ForwardX11 deðiþkeni ``yes'' þeklinde ayarlý ise (ya da aþaðýdaki -X ve -x seçeneklerinin tanýmlarýna bakýnýz) ve kullanýcý X11 (DISPLAY çevre deðiþkeni atanmýþ ise) kullanýyorsa, X11 görüntüye olan baðlantý özdevinimli biçimde uzaktaki sisteme iletilir. Bu sayede kabuktan (ya da komut ile) çalýþtýrýlan herhangi bir X11 programý þifreli kanal boyunca iletilir ve yerel sistemin gerçek X sunucusu ile baðlantýsý gerçekleþtirilmiþ olur. Kullanýcý DISPLAY deðiþkenini el ile ayarlamamalýdýr. X11 baðlantýlarýnýn iletilmesi komut satýrýnda ya da yapýlandýrma dosyalarý aracalýðý ile ayarlanabilir.
ssh tarafýndan ayarlanan DISPLAY deðeri (sýfýrdan büyük bir sayý) sunucu sistemi iþaret eder. Bu normaldir ve sebebi de ssh'nýn baðlantýlarý þifreli kanal üzerinden iletmek için sunucu sistemde 'vekil' X sunucusu oluþturmasýdýr.
ssh yine sunucu makinede özdevinimli biçimde Xauthority verisini ayarlar. Bu amaçla rasgele yetkilendime çerezi üretilip sunucuda 'Xauthority' dosyasýnda saklanýr ve iletilen baðlantýlarýn bu çerezi taþýyýp taþýmadýklarý kontrol edilir ve baðlantý açýldýðýnda bu çerez gerçek çerez ile deðiþtirilir. Gerçek kimlik denetimi çerezi sunucu sisteme hiçbir zaman gönderilmez (ve hiçbir çerez düz metin olarak gönderilmez).
Þayet ForwardAgent deðiþkeni ``yes'' þeklinde ayarlandý ise (aþaðýda açýklanan -A ve -a seçeneklerine bakýnýz) ve kullanýcý kimlik denetimi ajaný kullanýlýyorsa, ajana olan baðlantý özdevinimli biçimde uzak tarafa iletilir.
Keyfi TCP/IP baðlantýlarýnýn güvenli kanal üzerinden iletimi ya komut satýrýnda ya da yapýlandýrma dosyasýnda belirtilebilir. TCP/IP iletimi uygulamalarýna örnek olarak elektronik para çantasýna güvenli baðlantý ya da güvenlik duvarý üzerinden iletiþim verilebilir.
ssh kullanýlmýþ olan bütün ana sistemleri içeren bir veritabanýný özdevinimli olarak oluþturur ve denetler. Ana sistem anahtarlarý kullanýcýnýn ev dizinindeki $HOME/.ssh/known_hosts dosyasýnda tutulur. Buna ek olarak /etc/ssh/ssh_known_hosts dosyasýna da bilinen sistemleri kontrol için özdevinimli olarak baþvurulur.
Yeni sistemler özdevinimli olarak kullacýnýn dosyasýna eklenir. Þayet bir sistemin kimliði deðiþirse, ssh bu konuda uyarýr ve truva atlarýnýn kullanýcýn parolasýný çalmasýný engellemek için parola kimlik denetimini edilgenleþtirir. Bu mekanizmanýn diðer bir amacý þifrelemeyi es geçebilen araya girme saldýrýlarýna engel olmaktýr. StrictHostKeyChecking seçeneði anahtarý bilinmeyen ya da deðiþmiþ olan sistemlerde oturum açmayý engellemek için kullanýlabilir.
Seçenekler þunlardýr:
Bu seçenek etkinleþtirilirken dikkat edilmelidir. Uzak konaktaki (ajanýn Unix-alan soketi için) dosya izinlerini atlayabilen kullanýcýlar iletilen baðlantýlar sayesinde yerel ajana eriþebilirler. Saldýrgan, ajandan anahtarlarý alamaz ancak ajanda yüklü olan kimlikleri kullanarak kimlik denetimini geçmeyi baþarabilir.
AddressFamily (Adres Ailesi) BatchMode (Toplu Ýþ Kipi) BindAddress (Baðlantý Adresi) ChallengeResponseAuthentication (Kimlik Sorma/Yanýtlama Yöntemi) CheckHostIP (Konak IP Denetimi) Cipher (Þifre) Ciphers (Þifreler) ClearAllForwardings (Bütün Ýletimleri Temizle) Compression (Sýkýþtýrma) CompressionLevel (Sýkýþtýrma Seviyesi) ConnectionAttempts (Baðlantý Denemeleri) ConnectionTimeout (Baðlantý Zaman Aþýmý) DynamicForward (Özdevimli Ýletim) EscapeChar (Önceleme Karakteri) ForwardAgent (Ýletim Ajaný) ForwardX11 (X11 Ýletimi) ForwardX11Trusted (Güvenilir X11 Ýletimi) GatewayPorts (Að Geçidi Portlarý) GlobalKnownHostsFile (Genel Bilinen Konaklar Dosyasý) GSSAPIAuthentication (GSSAPI Kimlik Denetimi) GSSAPIDelegateCredentials (GSSAPI Yetkilendirme Tanýtýmlarý) Host (Konak) HostbasedAuthentication (Konak Tabanlý Kimlik Denetimi) HostKeyAlgorithms (Konak Anahtarý Algoritmalarý) HostKeyAlias (Konak Anahtarý Takma Adlarý) HostName (Konak Adý) IdentityFile (Kimlik Dosyasý) LocalForward (Yerel Ýletim) LogLevel (Günlükleme Düzeyi) MACs (Ýleti Kimlik Denetimi Kodlarý) NoHostAuthenticationForLocalhost (Yerel Konak Ýçin Kimlik Denetimi Yapma) NumberOfPasswordPrompts (Parola Ýsteme Adedi) PasswordAuthentication (Parolalý Kimlik Denetimi) Port PreferredAuthentications (Tercih Edilen Kimlik Denetimi Yöntemleri) Protocol (Protokol) ProxyCommand (Vekil Komutu) PubkeyAuthentication (Genel Anahtarlý Kimlik Denetimi) RemoteForward (Uzak Ýletim) RhostsRSAAuthentication (RSA tabanlý Rhosts Kimlik Denetimi) RSAAuthentication (RSA Kimlik Denetimi) ServerAliveInterval (Sunucu Canlýlýk Aralýðý) ServerAliveCountMax (Canlý Sunucu En Çok Mesaj Sayýsý) SmartcardDevice (Akýllý Kart Aygýtý) StrictHostKeyChecking (Mutlak Konak Anahtarý Denetimi) TCPKeepAlive (TCP Canlý Tutma) UsePrivilegedPort (Ayrýcalýklý Port Kullan) User (Kullanýcý) UserKnownHostsFile (Kullanýcýnýn Bilinen Konaklarý Dosyasý) VerifyHostKeyDNS (Uzak Konak Anahtarýnýn Doðruluðunun DNS ile Saðlanmasý) XAuthLocation (XAuth'un Tam Yolu)
Bu seçenek etkinleþtirilirken dikkat edilmelidir. Uzak sistemdeki dosya izinlerini atlayabilen kullanýcýlar (kullanýcýnýn X yetkilendirme veritabaný için) iletilen baðlantýlar sayesinde yerel X11 görüntüye eriþebilirler. Saldýrgan, tuþ vuruþlarýný izlenmek gibi etkinliklerde bulunabilir.
ssh yapýlandýrma verilerini her kullanýcýya özel ayrý birer yapýlandýrma dosyasýndan ve de sistemin yapýlandýrma dosyasýndan alabilir. Dosya biçimi ve yapýlandýrma seçenekleri ssh_config(5)'de açýklanmaktadýr.
ssh normalde aþaðýdaki çevre deðiþkenlerini ayarlar:
Ayrýca ssh, $HOME/.ssh/environment dosyasýný okur ve eðer bu dosya mevcut ise ve de kullanýcýlar deðiþkenlerini deðiþtirme hakkýna sahip iseler ``DEÐÝÞKEN=deðer'' biçimindeki satýrlarý ortama ekler. Daha fazla bilgi için, sshd_config(5)'deki PermitUserEnvironment (Kullanýcý Ortamýna Ýzin Ver) seçeneðine bakýnýz.
Kurallý sistem adý (isim sunucularýndan dönene ad) istemci için oturum açýlýrken denetimde sshd(8) tarafýndan kullanýlýr; diðer isimlere de gerek vardýr çünkü ssh, anahtarý denetlemeden önce kullanýcýnýn belirttiði ismi kurallý isme çevirmez. Bunun nedeni isim sunucularýna eriþebilen birinin sistem kimlik denetimini yanýltma olasýlýðýdýr.
sshd(8) öntanýmlý olarak .rhosts kimlik kanýtlama yönteminden önce RSA konak kimlik denetimini gerektirecek þekilde kurulur. Þayet sunucu makinanýn /etc/ssh/ssh_known_hosts dosyasýnda istemcinin konak anahtarý bulunmuyorsa, bu anahtar $HOME/.ssh/known_hosts dosyasýnda bulunabilir. Bunu yapmanýn en basit yolu sunucu konaða ssh ile oturum açtýktan sonra istemciye ssh kullanarak baðlanmaktýr. Böylece konak anahtarý kendiliðinden $HOME/.ssh/known_hosts dosyasýna eklenir.
ssh uzak komutun çýkýþ durumu ile ya da hata olmuþ ise 255 ile sonlanýr.
gzip(1), rsh(1), scp(1), sftp(1), ssh-add(1), ssh-agent(1), ssh-keygen(1), telnet(1), hosts.equiv(5), ssh_config(5), sshd_config(5), ssh-keysign(8), sshd(8).
T. Ylonen, T. Kivinen, M. Saarinen, T. Rinne, ve S. Lehtinen, SSH Protocol Architecture (SSH Protokol Mimarisi), draft-ietf-secsh-architecture-12.txt, Ocak 2002 (halen geliþtiriliyor).
OpenSSH, Tatu Ylonen'in özgün ve özgür ssh 1.2.12 sürümünün bir türevidir. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt ve Dug Song birçok yazýlým hatasýný ortadan kaldýrmýþlar, yeni özellikler eklemiþler ve OpenSSH'ý oluþturmuþlardýr. Markus Friedl SSH protokolünün 1.5 ve 2.0 sürümü desteði için katkýda bulunmuþtur.
Emin Ýslam Tatlý <eminislam (at) web.de>, Aðustos 2004