SSH(1) | Kullanıcı Komutları | SSH(1) |
İSİM
ssh — OpenSSH uzak oturum açma istemcisi
KULLANIM
ssh |
[-46AaCfGgKkMNnqsTtVvXxYy ] [-B bağlantı_arabirimi ] [-b bağlantı_adresi ] [-c algoritma ] [-D [bağlantı_adresi :]port ] [-E günlük_dosyası ] [-e önceleme_krk ] [-F yapılandırma_dosyası ] [-I pkcs11 ] [-i kimlik_dosyası ] [-J hoplama_konağı ] [-L adres ] [-l kullanıcı ] [-m mac_belirtimi ] [-O denetim_komutu ] [-o seçenek ] [-p port ] [-Q sorgu_seçeneği ] [ -R adres ] [-S denetim_yolu ] [-W konak:port ] [-w yerel_tünel [:uzak_tünel ]] hedef [komut [girdi ...]] |
AÇIKLAMA
ssh (SSH istemci) uzaktaki bir makinada komut çalıştırmak için uzaktaki makinada kullanıcı oturumu açmayı sağlayan bir uygulamadı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ı, çeşitli TCP/IP bağlantı portları ve UNIX alan soketleri de güvenli kanal üzerinden iletilebilir.
ssh, belirtilen hedef
'e oturum açar. Hedef [kullanıcı
]@konak
biçeminde belirtilebileceği gibi ssh://
[kullanıcı
]@konak
[:port
] biçeminde bir sarmalayıcı ile de belirtilebilir.
Şayet kullanıcı bir komut
belirtmiş ise, komut oturum kabuğu yerine uzak konakta çalıştırılır. komut
olarak tam komut satırı belirtilebileceği gibi ek girdi
'ler de belirtilebilir. Çalıştırılmak üzere komut sunucuya gönderilmeden önce belirtilen girdi
'ler boşluklarla ayrılarak komuta eklenir.
Seçenekler
-
-4
-
ssh'yı sadece IPv4 adreslerini kullanmaya zorlar.
-
-6
-
ssh'yı sadece IPv6 adreslerini kullanmaya zorlar.
-
-A
-
Kimlik denetimi ajanı (örn, ssh-agent(1)) bağlantı yönlendirmesini etkinleştirir. Bu ayrıca yapılandırma dosyasında da her konak için ayrı ayrı belirtilebilir.
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şebilir. Saldırgan, ajandan anahtarları alamaz ancak ajanda yüklü olan kimlikleri kullanarak kimlik denetimini geçmeyi başarabilir. Atlama konağı kullanmak (bkz:
-J
seçeneği) daha güvenli bir seçenek olabilir. -
-a
-
Kimlik denetimi ajanı bağlantı yönlendirmesini iptal eder.
-
-B
bağlantı_arabirimi
-
Hedef konağa bağlanmaya çalışmadan önce
bağlantı_arabirimi
nin adresine bağlanır. Sadece çok adresli sistemlerde yararlıdır. -
-b
bağlantı_adresi
-
Bağlantının kaynak adresi olarak yerel makinedeki
bağlantı_adresi
kullanılır. Sadece çok adresli sistemlerde yararlıdır. -
-C
-
Bütün verilerin (stdin, stdout, stderr, X11, TCP ve UNIX etki alanı bağlantı verileri dahil) sıkıştırılmasını sağlar. Sıkıştırma algoritması gzip(1)'in kullandığı ile aynıdır. Modem hatları ve diğer yavaş bağlantılar için sıkıştırma kullanılmalıdır, ancak hızlı ağlar için bu sadece yavaşlamaya neden olacaktır. Öntanımlı değer yapılandırma dosyalarında her konak için ayrı ayrı belirtilebilir.
Compression
[Sıkıştırma] seçeneğine bakınız. -
-c
algoritma
-
Oturumu şifrelemekte kullanılacak algoritmayı belirler. Şifreleme algoritmaları öncelik sırasıyla virgüllerle ayrılarak belirtilebilir. ssh_config(5) kılavuz sayfasında
Ciphers
yönergesinin açıklamasına bakınız. -
-D
[bağlantı_adresi
:]port
-
Yerel "dinamik" uygulama seviyesi port yönlendirmesi belirtir. Yerel tarafta
port
u dinlemek üzere bir soket ayrılır, seçimlik olarakbağlantı_adresi
belirtilebilir. Bu port ile ne zaman bir bağlantı kurulsa, bağlantı güvenli kanal üzerinden iletilir ve uzak sistemde nereye bağlanılacağı uygulama protokolü kullanılarak belirlenir. Şu anda SOCKS4 ve SOCKS5 protokolleri desteklenmektedir. ssh bir SOCKS sunucusu olarak davranır. Sadece yetkili kullanıcı (root) ayrıcalıklı portları yönlendirebilir. Dinamik port yönlendirmeleri yapılandırma dosyasında da belirtilebilir.IPv6 adresleri, adres köşeli ayraç içine alınarak belirtilebilir. Yalnızca sistem yöneticisi (root) ayrıcalıklı portları yönlendirebilir. Öntanımlı olarak, yerel portlar
GatewayPorts
yönergesine göre bağlanır. Ancak, bağlantıyı belirli bir adrese bağlamak için doğrudanbağlantı_adresi
kullanılabilir.bağlantı_adresi
olarak "localhost
" dinlenenport
a yalnızca yerel kullanım için bağlanılacağını belirtirken, boş bir adres veya "*
"port
un tüm arabirimlerden erişilebilir olması gerektiğini belirtir. -
-E
günlük_dosyası
-
Hatalar standart hata yerine
günlük_dosyası
na eklenir. -
-e
önceleme_karakteri
-
pty'li bir oturum için önceleme karakterini tanımlar (öntanımlı: '
~
'). Önceleme karakteri sadece bir satırının başında ise tanınır. Önceleme karakterinden sonraki nokta ('.
') bağlantıyı sonlandırır,Ctrl-Z
bağlantıyı askıya alır, '~
' ise önceleme karakterini bir kez gönderir.önceleme_karakteri
olarak "none
" belirtilirse öncelemler iptal edilir ve oturum tamamen şeffaf olur. -
-F
yapılandırma_dosyası
-
Kullanıcının kendine özgü yapılandırma dosyasını belirtmek içindir. Komut satırında bir
yapılandırma_dosyası
verilirse, sistemin yapılandırma dosyası (/etc/ssh/ssh_config
) görmezden gelinir.$HOME/.ssh/config
dosyası kullanıcının öntanımlı yapılandırma dosyasıdır.yapılandırma_dosyası
olarak "none
" belirtilirse hiçbir yapılandırma dosyası okunmaz. -
-f
-
Komut yürütülmeden hemen önce ssh'nın artalanda çalışmasını sağlar. Bu ssh'nın kullanıcı ya da anahtar parolası sorması gerektiği ancak kullanıcının bu işlemin artalanda yapılmasını istediği durumlarda yararlıdır. Bu seçenek
-n
seçeneğinin de uygulanmasını sağlar. X11 uygulamalarını uzak konakta çalıştırırken komutun şöyle çağrılması tavsiye edilir:ssh -f host xterm
.ExitOnForwardFailure
yapılandırma yönergesine “yes
” atanırsa,-f
ile başlatılmış bir istemci kendini artalana yerleştirmeden önce tüm uzak port yönlendirmelerinin başarıyla kurulmasını bekleyecektir. Ayrıntılı bilgi için ssh_config(5) kılavuz sayfasındaForkAfterAuthentication
yönergesinin açıklamasına bakınız. -
-G
-
host
vematch
bloklarını değerlendirdikten sonra yapılandırmayı basıp çıkmasını sağlar. -
-g
-
Uzak konakların yönlendirilen yerel portlara bağlanmasına izin verir. Çoğullanmış bir bağlantıda kullanılırsa, bu seçeneğin ana süreçte belirtilmesi gerekir.
-
-I
pkcs11
-
ssh'nın kullanıcı kimlik kanıtlaması için anahtarlar sağlayan bir
PKCS#11
belirteci ile iletişim kurmak için kullanacağıPKCS#11
paylaşımlı kütüphanesini belirler. -
-i
kimlik_dosyası
-
Genel anahtarlı kimlik doğrulaması için okunacak olan gizli anahtar dosyasını belirtmekte kullanılır. Gizli anahtar dosyası yerel olarak mevcut olmadığında ssh-agent(5)'e yüklenene karşılık gelen gizli anahtarı kullanmak için bir ortak anahtar dosyası da belirtilebilir.
~/.ssh/id_rsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ecdsa_sk, ~/.ssh/id_ed25519, ~/.ssh/id_ed25519_sk
ve~/.ssh/id_dsa
öntanımlıdır. Kimlik dosyaları, yapılandırma dosyasında her konak için ayrı ayrı belirtilebilir. Birden çok-i
seçeneği belirtmek (ve yapılandırma dosyalarında birden çok kimlik belirtmek) mümkündür. Yapılandırma dosyalarında ilgili yönerge yoksa, kimlik dosyası adlarına-cert.pub
eklenerek elde edilen dosya adıyla sertifika bilgileri yüklenmeye çalışılır. -
-J
hoplama_konağı
-
Önce hedef tarafından belirlenen
hoplama_konağı
na bir ssh bağlantısı yapıp oradan bir TCP yönlendirmesiyle asıl hedefe bağlantı kurulur. Virgüllerle ayrılmış birden fazlahoplama_konağı
belirtilebilir. SeçenekProxyJump
yapılandırma yönergesi için kısayoldur. Komut satırında belirtilen yapılandırma yönergeleri, genelde belirtilenhoplama_konağı
na değil, hedef konağa uygulanır.hoplama_konağı
için yapılandırmayı belirlemek için~/.ssh/config
kullanılmalıdır. -
-K
-
GSSAPI kimlik bilgilerinden GSSAPI tabanlı kimlik kanıtlamasını ve sunucuya yönlendirilmesini (aktarılmasını) etkinleştirir.
-
-k
-
GSSAPI kimlik bilgilerinin sunucuya yönlendirilmesini (aktarılmasını) iptal eder.
-
-L
[bağlantı_adresi
:]yerel_port
:uzak_konak
:uzak_port
-L
[bağlantı_adresi
:]yerel_port
:uzak_soket
-L
yerel_soket
:uzak_konak
:uzak_port
-L
yerel_soket
:uzak_soket
-
Yerel (istemci) konakta, belirtilen TCP
yerel_port
una veya Unixyerel_soket
ine yapılan bağlantıların, belirtilenuzak_konak
takiuzak_port
a veya Unixuzak_soket
ine iletileceğini belirtir. Bu, isteğe bağlı olarak belirtilenbağlantı_adresi
'ne bağlı yerel tarafta bir TCPyerel_port
u veya bir Unix soketini dinlemek için biryerel_soket
tahsis edilerek çalışır.yerel_port
veyayerel_soket
ten her bağlantı isteğinde, bağlantı güvenli kanal üzerinden iletilir veuzak_konak
takiuzak_port
a veya Unixuzak_soket
ine bağlantı yapılır.Port yönlendirmeleri ayrıca, yapılandırma dosyasında da belirtilebilir. Yalnızca sistem yöneticisi (root) ayrıcalıklı portları yönlendirebilir. IPv6 adresleri, adres köşeli ayraç içine alınarak belirtilebilir.
Öntanımlı olarak, yerel portlar
GatewayPorts
yönergesine göre bağlanır. Ancak, bağlantıyı belirli bir adrese bağlamak için doğrudanbağlantı_adresi
kullanılabilir.bağlantı_adresi
olarak "localhost
" dinlenenport
a yalnızca yerel kullanım için bağlanılacağını belirtirken, boş bir adres veya "*
"port
un tüm arabirimlerden erişilebilir olması gerektiğini belirtir. -
-l
kullanıcı
-
Uzak konakta oturum açmak için kullanılacak
kullanıcı
adını belirler. Ayrıca, yapılandırma dosyasında da her bir konak için ayrı ayrı belirtilebilir. -
-M
-
Bağlantı paylaşımı için ssh istemcisini "master" (ana) kipe geçirir. "master" kipi etkin kılmak için birden fazla
-M
seçeneği belirtilebilirse de çoğullama durumunu değiştiren her işlemden önce (örneğin yeni bir oturum açma) ssh-askpass(1) ile onay gerekir. Ayrıntılı bilgi için ssh_config(5) kılavuz sayfasındaControlMaster
yönergesinin açıklamasına bakınız. -
-m
mac_belirtimi
-
Tercih sırasına göre virgüllerle ayrılmış MAC (message authentication code - ileti kimlik kanıtlama kodu) algoritmaları belirtilebilir. Daha fazla bilgi için
MACs
anahtar sözcüğüne bakınız. -
-N
-
Uzak komut çalıştırılmaz. Bu sadece port yönlendirme için yararlıdır. Ayrıntılı bilgi için ssh_config(5) kılavuz sayfasında
SessionType
yönergesinin açıklamasına bakınız. -
-n
-
/dev/null
'u standart girdiye yöneltir (yani standart girdinin okunması engellenir). ssh artalanda çalışıyorsa bu seçenek kullanılmak zorundadır. Uzak sistemde X11 programları çalıştırılırken bu seçenek çok kullanılır. Örneğin,ssh -n shadows.cs.hut.fi emacs &
komutushadows.cs.hut.fi
konağında emacs uygulamasını başlatacak ve X11 bağlantısı otomatik olarak şifreli kanal üzerinden iletilecektir. ssh artalana yerleştirilecektir. (Ancak ssh'nın kullanıcı ya da anahtar parolası gerektirmesi durumunda bu çalışmayacaktır; ayrıca-f
seçeneğine de bakınız.) Ayrıntılı bilgi için ssh_config(5) kılavuz sayfasındaStdinNull
yönergesinin açıklamasına bakınız. -
-O
denetim_komutu
-
Etkin bağlantı çoğullama ana sürecine komut gönderir.
-O
seçeneği belirtildiğinde,denetim_komutu
yorumlanır ve ana sürece iletilir. Geçerli komutlar şunlardır: "check
" (ana sürecin çalışıp çalışmadığına bak), “forward
” (komut çalıştırmadan önce yönlendirme isteği yap), "cancel
" (yönlendirmeleri iptal et), "exit
" (ana sürecin çıkmasını iste) ve "stop
" (ana süreçten artık çoğullama isteği kabul etmemesini iste). -
-o
seçenek
-
Yapılandırma dosyasındaki biçime uygun
seçenek
leri belirtmek için kullanılabilir. Kendisine özel komut satırı seçeneği olmayan yapılandırma seçeneklerini belirtmek için kullanılabilir. Aşağıda sıralanan seçeneklere ait tüm ayrıntılar ve alabilecekleri olası değerler için ssh_config(5) kılavuz sayfasına bakınız.AddKeysToAgent (Anahtarları Ajana Ekle) AddressFamily (Adres Ailesi) BatchMode (Toplu İş Kipi) BindAddress (Bağlantı Adresi) CanonicalDomains (Kurallı Alan Adları) CanonicalizeFallbackLocal CanonicalizeHostname CanonicalizeMaxDots CanonicalizePermittedCNAMEs CASignatureAlgorithms CertificateFile CheckHostIP (Konak IP Denetimi) Ciphers (Şifreler) ClearAllForwardings (Bütün İletimleri Temizle) Compression (Sıkıştırma) ConnectionAttempts (Bağlantı Denemeleri) ConnectionTimeout (Bağlantı Zaman Aşımı) ControlMaster ControlPath ControlPersist DynamicForward (Özdevimli İletim) EscapeChar (Önceleme Karakteri) ExitOnForwardFailure FingerprintHash ForkAfterAuthentication ForwardAgent (İletim Ajanı) ForwardX11 (X11 İletimi) ForwardX11Timeout 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ı) HashKnownHosts Host (Konak) HostbasedAcceptedAlgorithms HostbasedAuthentication (Konak Tabanlı Kimlik Denetimi) HostKeyAlgorithms (Konak Anahtarı Algoritmaları) HostKeyAlias (Konak Anahtarı Takma Adları) HostName (Konak Adı) IdentitiesOnly IdentityAgent IdentityFile (Kimlik Dosyası) IPQoS (IPv4 hizmet türü/DSCP sınıfı) KbdInteractiveAuthentication (Klavyeyle Kimlik Kanıtlama) KbdInteractiveDevices (Klavye Etkileşimli Aygıtlar) KexAlgorithms (Anahtar Değiş/Tokuş Algoritmaları) KnownHostsCommand (Konak Anahtarlarını Listeleme Komutu) LocalCommand (Yerel Komut) LocalForward (Yerel Yönlendirme) LogLevel (Günlükleme Düzeyi) LogVerbose (Günlükleme Ayrıntısı) MACs (İleti Kimlik Denetimi Kodları) Match (Eşleş) NoHostAuthenticationForLocalhost NumberOfPasswordPrompts (Parola İsteme Adedi) PasswordAuthentication (Parolalı Kimlik Denetimi) PermitLocalCommand (Yerel Komuta İzin) PermitRemoteOpen (Uzak Port Yönlendirme İzni) PKCS11Provider (PKCS11 Sağlayıcı) Port PreferredAuthentications (Tercihli Kimlik Denetimleri) ProxyCommand (Vekil Komutu) ProxyJump (Atlama Vekili) ProxyUseFdpass (Dosya Tanıtıcısı Döndüren Vekil Komutu) PubkeyAcceptedAlgorithms (Genel Anahtar İmza Algoritmaları) PubkeyAuthentication (Genel Anahtarlı Kimlik Denetimi) RekeyLimit (Uzlaşım Öncesi Sınır) RemoteCommand (Uzak Komut) RemoteForward (Uzak Yönlendirme) RequestTTY (İstek Uçbirimi) RevokedHostKeys (Yürürlükten Kalkan Konak Anahtarları) SendEnv (Ortamı Gönder) ServerAliveInterval (Sunucu Canlılık Aralığı) ServerAliveCountMax (Canlı Sunucu En Çok İleti Sayısı) SessionType (Oturum Türü) SetEnv (Ortamı Tanımla) StdinNull StreamLocalBindMask StreamLocalBindUnlink StrictHostKeyChecking (Mutlak Konak Anahtarı Denetimi) TCPKeepAlive (TCP Canlı Tutma) Tunnel (Tünel) TunnelDevice (Tünel Aygıtı) UpdateHostKeys (Konak Anahtarlarını Güncelle) User (Kullanıcı) UserKnownHostsFile (Kullanıcının Bilinen Konakları Dosyası) VerifyHostKeyDNS VisualHostKey (Konak Anahtarını Göster) XAuthLocation (XAuth'un Tam Yolu)
-
-p
port
-
Uzak konaktaki bağlantı portu. Yapılandırma dosyasında her konak için ayrı ayrı belirtilebilir.
-
-Q
sorgu_seçeneği
-
Aşağıdaki özelliklerden biri tarafından desteklenen algoritmalar için sorgulama yapar:
cipher
(desteklenen simetrik şifreler),cipher-auth
(kimliği doğrulanmış şifrelemeyi destekleyen, desteklenen simetrik şifreler),help
(-Q
seçeneği ile kullanım için desteklenen sorgu terimleri),mac
(desteklenen ileti bütünleme kodları),kex
(anahtar değiş/tokuş algoritmaları),key
(anahtar türleri),key-cert
(sertifika anahtarı türleri),key-plain
(sertifikasız anahtar türleri),key-sig
(tüm anahtar türleri ve imza algoritmaları),protocol-version
(desteklenen SSH protokolü sürümleri) vesig
(desteklenen imza algoritmaları). Bunların yanında, ssh_config(5) veya sshd_config(5)'teki bir algoritma listesi alan herhangi bir anahtar sözcük, ilgili sorgu_seçeneği için bir takma ad olarak kullanılabilir. -
-q
-
Sessiz kip. Bütün uyarı ve tanı iletilerinin gizlenmesini sağlar.
-
-R
[bağlantı_adresi
:]uzak_port
:yerel_konak
:yerel_port
-R
[bağlantı_adresi
:]uzak_port
:yerel_soket
-R
uzak_soket
:yerel_konak
:yerel_port
-R
uzak_soket
:yerel_soket
-R
[bağlantı_adresi
:]uzak_port
-
Belirtilen uzak TCP portu veya Unix soketi bağlantısının yerel konağa yönlendirilmesi için kullanılır.
Bu, uzak taraftaki bir Unix soketini dinlemek için bir TCP
uzak_port
u veya bir Unixuzak_soket
i tahsis edilerek sağlanır. Bu porta veya Unix soketine her bağlantı yapılışında, bağlantı güvenli kanal üzerinden iletilir veyerel_konak
veyerel_port
veyayerel_soket
ile belirtilen açık bir hedefe bağlantı kurulur, ancak açık bir hedef yoksa ssh bir SOCKS 4/5 vekili olarak davranacak ve bağlantıları uzak SOCKS istemcisi tarafından istenen hedeflere yönlendirecektir.Port yönlendirmeleri ayrıca, yapılandırma dosyasında da belirtilebilir. Ayrıcalıklı portlar yalnızca uzak konakta root olarak oturum açılmışsa yönlendirebilir. IPv6 adresleri, adres köşeli ayraç içine alınarak belirtilebilir.
Öntanımlı olarak, TCP dinleme soketleri sunucu üzerinde yalnızca geridönüş (loopback) aygıtına bağlanır. Ancak, bağlantıyı belirli bir adrese bağlamak için doğrudan
bağlantı_adresi
kullanılabilir.bağlantı_adresi
olarak boş bir adres veya "*
" belirtilmesiuzak_soket
in tüm arabirimlerden erişilebilir olması gerektiğini belirtir.bağlantı_adresi
belirtilmesi sadece sunucununGatewayPorts
yönergesi etkinse başarılı olur (Bkz: ssh_config(5)).uzak_port
seçenekte '0
' olarak belirtilmişse, sunucuda dinleme portu dinamik olarak tahsis edilir ve çalışma anında istemciye bildirilir.-O forward
ile birlikte kullanılmışsa tahsis edilen port standart çıktıya da basılır. -
-S
denetim_yolu
-
Bağlantı paylaşımı için bir denetim soketinin konumu belirtilir. Bağlantı paylaşımını devre dışı bırakmak için “
none
” dizgesi belirtilmelidir. Ayrıntılı bilgi için ssh_config(5) kılavuz sayfasındaControlPath
veControlMaster
yönergesinin açıklamasına bakınız. -
-s
-
Uzak konakta bir altsistemi çağırmak amacıyla kullanılabilir. Altsistemler, diğer uygulamaların (örn. sftp) güvenle taşınmasını sağlayan SSH protokolünün bir özelliğidir. Altsistem uzak komut olarak belirtilir. Ayrıntılı bilgi için ssh_config(5) kılavuz sayfasında
SessionType
yönergesinin açıklamasına bakınız. -
-T
-
Sözde-uçbirim tahsisini iptal eder.
-
-t
-
Sözde-uçbirim tahsisini zorlar. Bu uzak konakta ekran tabanlı uygulamaların çalıştırılmasında kullanılabilir. Örnek olarak menü hizmetlerinin gerçekleştirilmesinde bu çok yararlı olabilir. Çok sayıda
-t
seçeneği ssh'nın yerel tty'si olmasa bile bir tty ayrılmasını sağlar. -
-V
-
Sürüm numarasını gösterir ve çıkar.
-
-v
-
Ayrıntı kipi. ssh'nın çalışması esnasındaki hata ayıklama iletilerinin gösterilmesini sağlar. Bağlantı, kimlik denetimi ve yapılandırma sorunlarındaki hataları ayıklamada bu seçenek çok faydalıdır. Çok sayıda
-v
seçeneği ayrıntı seviyesini artırır. En fazla üç tane olabilir. -
-W
konak:port
-
İstemcideki standart giriş ve çıkışın güvenli kanal üzerinden belirtilen
konak
ın belirtilenport
una yönlendirilmesini sağlar. Örtük olarak-N
,-T
,ExitOnForwardFailure
veClearAllForwardings
uygulanır, ancak bunlar yapılandırma dosyasında veya-o
komut satırı seçenekleri kullanılarak geçersiz kılınabilir. -
-w
yerel_tünel
[:uzak_tünel
] -
İstemci (
yerel_tünel
) ve sunucu (uzak_tünel
) arasında belirtilenTunnelDevice
aygıtlarıyla tünel aygıtı yönlendirmesi sağlar.Kullanılacak bir sonraki uygun tünel aygıtı sayısal kimliği veya “
any
” anahtar kelimesi ile belirtilebilir.uzak_tünel
belirtilmezse, öntanımlı "any
" (herhangi biri) değeri kullanılır. Ayrıntılı bilgi için ssh_config(5) kılavuz sayfasındaTunnel
veTunnelDevice
yönergesinin açıklamasına bakınız.Tunnel
yönergesi atanmazsa öntanımlı tünel kipi “point-to-point
” (uçtan-uca) değeri kullanılır. Farklı birTunnel
yönlendirme kipi kullanılacaksa,-w
seçeneğinden önce belirtilmelidir. -
-X
-
X11 yönlendirmesini etkinleştirir. Bu her konak için ayrı ayrı yapılandırma dosyasında belirtilebilir.
Bu seçenek etkinleştirilirken dikkat edilmelidir. Uzak sistemdeki dosya izinlerini atlayabilen kullanıcılar (kullanıcının X yetkilendirme veritabanı için) yönlendirilen bağlantılar sayesinde yerel X11 ekranına erişebilir. Saldırgan, tuş vuruşlarını izlenmek gibi etkinliklerde bulunabilir.
Bu sebeple, X11 yönlendirmesi, öntanımlı olarak, X11 GÜVENLİK eklentisinin sınırlamalarına tabidir. Ayrıntılı bilgi için
-Y
seçeneğine ve ssh_config(5) kılavuz sayfasındaForwardX11Trusted
yönergesinin açıklamasına bakınız. -
-x
-
X11 yönlendirmesini iptal eder.
-
-Y
-
Güvenilir X11 yönlendirmesini etkinleştirir. Güvenilir X11 yönlendirmeleri, X11 GÜVENLİK eklentisinin denetimlerine tabi değildir.
-
-y
-
Günlük bilgisi syslog(3) sistem modülü kullanılarak gönderilir. Öntanımlı olarak bu bilgi standart hataya gönderilmektedir.
ssh bunlara ek olarak her kullanıcının yapılandırma dosyasından ve sistem yapılandırma dosyasından yapılandırma verilerini alabilir. Dosya biçemi ve yapılandırma seçenekleri ssh_config(5) kılavuz sayfasında açıklanmıştır.
KİMLİK DOĞRULAMA
OpenSSH SSH istemcisi SSH 2 protokolünü destekler.
Kimlik doğrulama için kullanılabilen yöntemler şunlardır: GSSAPI tabanlı kimlik doğrulama, konak tabanlı kimlik doğrulama, genel anahtarlı kimlik doğrulama, klavye etkileşimli kimlik doğrulama ve parolalı kimlik doğrulama. Kimlik doğrulama yöntemleri yukarıda belirtilen sırayla denenir, ancak öntanımlı sırayı değiştirmek için PreferredAuthentications
kullanılabilir.
Konak tabanlı kimlik doğrulama şu şekilde çalışır: Kullanıcının oturum açtığı makine uzak makinede /etc/hosts.equiv
veya /etc/shosts.equiv
içinde listeleniyorsa, kullanıcı root değilse ve kullanıcı adları her iki tarafta da aynıysa veya kullanıcının uzak makinedeki ev dizininde ~/.rhosts
veya ~/.shosts
dosyaları varsa ve istemci makinenin adı ile o makinedeki kullanıcının adını içeren bir satır içeriyorsa, kullanıcının oturum açabileceği varsayılır. Ek olarak, sunucu, oturum açmaya izin verebilmek için istemcinin konak anahtarını doğrulayabilmelidir (aşağıdaki /etc/ssh/ssh_known_hosts
ve ~/.ssh/known_hosts
açıklamasına bakın). Bu kimlik doğrulama yöntemi, IP sahtekarlığı, DNS sahtekarlığı ve yönlendirme sahtekarlığı ile ilgili güvenlik açıklarını kapatır. [Yöneticiye: /etc/hosts.equiv
, ~/.rhosts
ve genel olarak rlogin/rsh protokolü doğal olarak güvensizdir ve güvenlik isteniyorsa devre dışı bırakılmalıdır.]
Genel anahtarlı kimlik doğrulaması şu şekilde çalışır: Şema, şifreleme ve şifre çözmenin ayrı anahtarlar kullanılarak yapıldığı şifreleme sistemlerini kullanan genel anahtarlı şifrelemeye dayanır ve şifreleme anahtarından şifre çözme anahtarının türetilmesi mümkün değildir. Buradaki fikir, her kullanıcının kimlik doğrulama amacıyla bir genel/gizli anahtar çifti oluşturmasıdır. Sunucu genel anahtarı bilir, gizli anahtarı ise yalnızca kullanıcı bilir. ssh, DSA, ECDSA, Ed25519 veya RSA algoritmalarından birini kullanarak genel anahtarlı kimlik doğrulama protokolünü otomatik olarak uygular.
~/.ssh/authorized_keys
dosyası, oturum açmaya izin verilen genel anahtarları listeler. Kullanıcı oturum açtığında, ssh sunucuya kimlik doğrulaması için hangi anahtar çiftini kullanmak istediğini söyler. İstemci özel anahtara erişimi olduğunu kanıtlar ve sunucu da ilgili genel anahtarın hesabı kabul etmeye yetkili olup olmadığına bakar.
Sunucu, farklı bir yöntemle kimlik doğrulamayı tamamlandıktan sonra, genel anahtarlı kimlik doğrulamasının başarılı olmasını engelleyen hataları istemciye bildirebilir. Bunlar, günlükleme seviyesini hata ayıklamaya veya daha yükseğe çıkararak (örneğin -v
seçeneğini kullanarak) görüntülenebilir.
Kullanıcı anahtar çiftini ssh-keygen(1) çalıştırarak oluşturur. Uygulama gizli anahtarı kullanıcının ev dizininde ~/.ssh/id_dsa
(DSA), ~/.ssh/id_ecdsa
(ECDSA), ~/.ssh/id_ecdsa_sk
(kimlik doğrulayıcı tarafından barındırılan ECDSA), ~/.ssh/id_ed25519
(Ed25519), ~/.ssh/id_ed25519_sk
(kimlik doğrulayıcı tarafından barındırılan Ed25519) veya ~/.ssh/id_rsa
(RSA) dosyasında, genel anahtarı ise ~/.ssh/id_dsa.pub
(DSA), ~/.ssh/id_ecdsa.pub
(ECDSA), ~/.ssh/id_ecdsa_sk.pub
(kimlik doğrulayıcı tarafından barındırılan ECDSA), ~/.ssh/id_ed25519.pub
(Ed25519), ~/.ssh/id_ed25519_sk.pub
(kimlik doğrulayıcı tarafından barındırılan Ed25519) veya ~/.ssh/id_rsa.pub
(RSA) dosyasında saklar. Bundan sonra kullanıcı genel anahtarını uzak makinedeki ev dizininde ~/.ssh/authorized_keys
dosyasına kopyalamalıdır. authorized_keys
dosyası geleneksel ~/.rhosts
dosyasına karşılıktır ve satırlar çok uzun olabilse de her satırda bir anahtar içerir. Bunları yaptıktan sonra, kullanıcı parola belirtmeksizin oturum açabilir.
Genel anahtarlı kimlik doğrulamasının sertifika doğrulamalı bir çeşidi mevcuttur: Bir dizi genel/gizli anahtar yerine imzalı sertifikalar kullanılır. Bunun getirisi, birçok genel/gizli anahtar yerine tek bir güvenilir sertifika yetkilisinin kullanılabilmesidir. Daha fazla bilgi için ssh-keygen(1) sayfasında SERTİFİKALAR bölümüne bakın.
Genel anahtarlı veya sertifikalı kimlik doğrulamasını kullanmanın en uygun yolu, bir kimlik doğrulama aracısı kullanmaktır. Daha fazla bilgi için ssh-agent(1) ve (istenirse) ssh_config(5) içindeki AddKeysToAgent
yönergesine bakın.
Klavye etkileşimli kimlik doğrulama şu şekilde çalışır: Sunucu, isteğe bağlı bir "meydan okuma" metni gönderir ve muhtemelen birden çok kez yanıt ister. Klavye etkileşimli kimlik doğrulama örnekleri arasında BSD Kimlik Doğrulaması (bkz. login.conf(5) ve PAM (OpenBSD dışında bazı sistemlerde) bulunur.
Son olarak, diğer kimlik doğrulama yöntemleri başarısız olursa, ssh kullanıcıdan parola ister. Parola, doğrulanması için uzak konağa gönderilir; ancak, tüm iletişimler şifreli olduğundan, ağda dinleyen biri tarafından bu parola görülemez.
ssh kullanılmış olan bütün konakları içeren veritabanını otomatik olarak oluşturur ve denetler. Konak anahtarları kullanıcının ev dizinindeki ~/.ssh/known_hosts
dosyasında tutulur. Buna ek olarak bilinen konaklar için otomatik olarak /etc/ssh/ssh_known_hosts
dosyasına da başvurulur. Yeni konaklar otomatik olarak kullacının dosyasına eklenir. Şayet bir konağın kimlik bilgileri değişirse, ssh bu konuda uyarır ve truva atlarının kullanıcının parolasını çalmasını engellemek için parolalı kimlik denetimini iptal eder. 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 konaklarda oturum açmayı engellemek için kullanılabilir.
Kullanıcının kimliği sunucu tarafından kabul edildiğinde, sunucu ya verilen komutu etkileşimli olmayan bir oturumda yürütür ya da herhangi bir komut belirtilmemişse makinede oturum açar ve kullanıcıya etkileşimli bir oturum olarak normal bir kabuk verir. Uzak komut veya kabuk ile olan tüm iletişim otomatik olarak şifrelenir.
Etkileşimli bir oturum istenirse, ssh öntanımlı olarak, etkileşimli oturumlar için istemcide de varsa, yalnızca bir sözde uçbirim (pty) ister. -T
ve -t
seçenekleri bu davranışı geçersiz kılmak için kullanılabilir.
Sözde uçbirim tahsis edilmişse kullanıcı aşağıda bahsedilen önceleme karakterlerini kullanabilir.
Sözde uçbirim tahsis edilmemişse, oturum şeffaftır ve ikil verileri güvenilir bir şekilde aktarmak için kullanılabilir. Çoğu sistemde, önceleme karakterini "none
" olarak ayarlamak, bir tty kullanılsa bile oturumu şeffaf hale getirir.
Uzak makinedeki komut veya kabuk çıkış yaptığında oturum sonlandırılır ve tüm X11 ve TCP bağlantıları kapatılır.
ÖNCELEME KARAKTERLERİ
Sözde uçbirim istenmesi durumunda ssh birçok işlevi bir önceleme karakteri aracılığı ile destekler.
Tek bir yaklaşık işareti (tilde) ~~
şeklinde ya da yaklaşık işareti ile öncelenmiş aşağıda belirtilenler dışında bir karakterle gönderilebilir. Önceleme karakterinin önceleme karakteri olarak yorumlanabilmesi için karakterden hemen sonra bir satır sonu 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 varsayımıyla) şunlardır:
-
~.
-
Bağlantıyı kes.
-
~^Z
-
ssh'ı artalanda çalıştır.
-
~#
-
Yönlendirilen bağlantıları listele.
-
~&
-
Oturumdan çıkış sırasında, yönlendirilen bağlantının ya da X11 oturumlarının sonlandırılmasını beklerken ssh'ı artalanda çalıştır.
-
~?
-
Önceleme karakterlerinin listesini göster.
-
~B
-
Uzak sisteme sonlandırma iletisi gönder (uzak sistem destekliyorsa).
-
~C
-
Komut satırı aç. Şimdilik
-L
,-R
ve-D
seçeneklerini kullanarak port yönlendirmesi eklemeyi sağlar (yukarı bkz.) Ayrıca, yerel konak için-KL
[bağlantı_adresi:
]port
ile, uzak konak için-KR
[bağlantı_adresi:
]port
ile ve dinamik port yönlendirmeleri için-KD
[bağlantı_adresi:
]port
ile mevcut port yönlendirmelerinin iptal edilmesini sağlar. ssh_config(5)'tePermitLocalCommand
seçeneği etkinleştirilmişse,!
komut
ile kullanıcının yerel bir komutu yürütmesine izin verir.-h
seçeneği ile temel yardım sağlanmıştır. -
~R
-
Bağlantı anahtarlarının yenilenmesini iste (uzak sistemin de desteklemesi durumunda).
-
~V
-
Hatalar standart hataya yazılırken ayrıntı düzeyini (LogLevel) azalt.
-
~v
-
Hatalar standart hataya yazılırken ayrıntı düzeyini (LogLevel) arttır.
TCP YÖNLENDİRMESİ
Güvenli bir kanal üzerinden rastgele TCP bağlantılarının yönlendirilmesi, komut satırında veya bir yapılandırma dosyasında belirtilebilir. TCP yönlendirilmenin olası uygulamalarından biri, bir posta sunucusuna güvenli bir bağlantıyken bir diğeri güvenlik duvarlarından geçiştir.
Aşağıda, bağlandığı IRC sunucusu şifreli iletişimi doğrudan desteklemese de, bir IRC istemcisi ile iletişimin şifrelenmesi örneklenmiştir. Kullanıcı, bağlantıyı yönlendirmek için kullanılacak portları belirterek ssh ile uzak konağa bağlanmaktadır. Bundan sonra uygulama yerel olarak başlatıldığında ssh bağlantıyı şifreler ve uzak sunucuya yöneltir.
Aşağıdaki örnekte, 6667 numaralı standart IRC portu kullanılarak istemcideki IRC oturumu "server.example.com" adresindeki IRC sunucusuna tünellenmekte ve "#users" odasına "pinky" takma adıyla katılım sağlanmaktadır:
$ ssh -f -L 6667:localhost:6667 server.example.com sleep 10 $ irc -c '#users' pinky IRC/127.0.0.1
-f
seçeneği ile ssh artalana alınmakta, “sleep 10
” uzak komutu ile tünel, kullanacak uygulamanın başlatılması için (örnekte 10 saniye) geciktirilmektedir. Belirtilen sürede bir bağlantı gerçekleşmezse ssh çıkacaktır.
X11 YÖNLENDİRMESİ
ForwardX11
yönergesine "yes
" atanmışsa (yukarıdaki -X
, -x
ve -Y
seçeneklerinin açıklamasına bakın) ve kullanıcı X11 kullanıyorsa (DISPLAY
ortam değişkeni etkindir), X11 ekranına bağlantı, kabuktan (veya komuttan) başlatılan herhangi bir X11 uygulamasında olduğu gibi, yerel makineden uzak X sunucusuna yapılacak bağlantı üzerinden ve şifreli kanaldan geçerek otomatik olarak uzak tarafa iletilir. Kullanıcı, DISPLAY
değişkenini elle ayarlamamalıdır. X11 bağlantılarının yönlendirilmesi, yapılandırma dosyalarında veya komut satırından yapılandırılabilir.
ssh tarafından belirlenen DISPLAY
değeri sunucu makineyi, ancak sıfırdan büyük bir değerle gösterir. Bu normaldir ve ssh bağlantıları şifreli kanal üzerinden iletmek için sunucu makinesinde bir "vekil" X sunucusu oluşturduğu için bu böyledir.
ssh ayrıca sunucu makinesinde Xauthority
verilerini otomatik olarak atayacaktır. Bu amaçla rastgele bir yetkilendirme çerezi oluşturacak, bunu sunucuda Xauthority
'de saklayacak ve yönlendirilen her bağlantının bu çerezi taşıdığını doğrulayıp bağlantı açıldığında bunu gerçek çerez ile değiştirecektir. Gerçek kimlik doğrulama çerezi hiçbir zaman sunucu makinesine gönderilmez (hiçbir çerez açıkça gönderilmez).
ForwardAgent
yönergesine "yes
" atanmışsa (yukarıdaki -A
ve -a
seçeneklerinin açıklamasına bakın) ve kullanıcı bir kimlik doğrulama aracısı kullanıyorsa, aracıya olan bağlantı otomatik olarak uzak tarafa yönlendirilir.
KONAK ANAHTARLARININ DOĞRULANMASI
Bir sunucuya ilk kez bağlanırken, kullanıcıya sunucunun genel anahtarının parmak izi sunulur (StrictHostKeyChecking
seçeneği devre dışı bırakılmamışsa). Parmak izleri ssh-keygen(1) kullanılarak belirlenebilir:
$ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
Parmak izi zaten biliniyorsa, eşleştirilebilir, anahtar kabul veya red edilebilir. Sunucu için yalnızca eski sürüm (MD5) parmak izleri mevcutsa, parmak izi algoritmasını eşleşecek şekilde sürüm düşürmek için ssh-keygen(1) -E
seçeneği kullanılabilir.
Yalnızca parmak izi dizilerine bakarak konak anahtarlarını karşılaştırmanın zorluğu nedeniyle, konak anahtarlarını aş görseli oluşturarak görsel olarak karşılaştırma desteği de vardır. VisualHostKey
yönergesine "yes
" atayarak, oturumun kendisi etkileşimli olsun veya olmasın, bir sunucuya her girişte küçük bir ASCII görsel görüntülenir. Kullanıcı, sürekli kullandığı sunucunun ürettiği kalıbı öğrenerek, tamamen farklı bir kalıp görüntülendiğinde konak anahtarının değiştiğini kolayca anlayabilir. Bununla birlikte, bu modeller kesin olmadığından, hatırlanan modele benzeyen bir model, yalnızca konak anahtarının aynı olma olasılığını sağlar, garantili kanıt değildir.
Bilinen tüm konaklar için parmak izlerinin listesini aş görselleriyle birlikte almak için aşağıdaki komut satırı kullanılabilir:
$ ssh-keygen -lv -f ~/.ssh/known_hosts
Parmak izi bilinmiyorsa, başka bir doğrulama yöntemi kullanılabilir: "DNS doğrulamalı SSH parmak izleri". Alan adı kayıtlarına SSHFP adlı bir kaynak kaydı (RR) eklenerek bağlanan istemci bilinen parmak izini sunulan anahtarınkiyle karşılaştırabilir.
Bu örnekte istemci “host.example.com” sunucusuna bağlanmaktadır. Önce host.example.com alan adı kayıtlarına SSHFP kaynak kayıtlarını eklemek gerekir:
$ ssh-keygen -r host.example.com.
Bu komutun çıktı satırları alan adı kayıtlarına eklenecektir. DNS sunucusunun parmak izi sorgularını yanıtlayıp yanıtlamadığını anlamak için:
$ dig -t SSHFP host.example.com
komutu kullanılabilir. Artık istemci bağlantı kurabilir:
$ ssh -o "VerifyHostKeyDNS ask" host.example.com [...] Matching host key fingerprint found in DNS. Are you sure you want to continue connecting (yes/no)? [Konak anahtarı parmak izi DNS'deki ile eşleşti.] [Bağlanmak istiyor musunuz (evet/hayır)?]
Daha ayrıntılı bilgi için ssh_config(5) kılavuz sayfasında VerifyHostKeyDNS
yönergesinin açıklamasına bakılabilir.
SSH TÜNELLERİ
ssh, iki ağın güvenli bir şekilde birleştirilmesini sağlayan tun(4) sözde ağ aygıtını kullanarak Özel Sanal Ağ (VPN) tünelleme desteği vermektedir. ssh_config(5) yapılandırma yönergesi PermitTunnel
ile sunucunun bunu destekleyip desteklemeyeceği ve hangi düzeyde (katman 2 veya 3 trafik) destekleyeceği belirlenebilir.
Aşağıdaki örnek yapılandırma ile SSH sunucusu, istemci ağı 10.0.50.0/24
ile uzak ağ 10.0.99.0/24
arasında, uzak ağa giden 192.168.1.15
ağ geçidi kullanarak, 10.1.1.1
'den 10.1.1.2
'ye noktadan noktaya bağlantı kurmaktadır.
İstemci üzerinde:
# ssh -f -w 0:1 192.168.1.15 true # ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252 # route add 10.0.99.0/24 10.1.1.2
Sunucu üzerinde:
# ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252 # route add 10.0.50.0/24 10.1.1.1
İstemci erişimi, /root/.ssh/authorized_keys
dosyası (aşağıya bakın) ve PermitRootLogin
sunucu yönergesi aracılığıyla daha hassas bir şekilde ayarlanabilir. PermitRootLogin
yönergesine “forced-commands-only
” [yalnızca zorunlu komutlar] değeri atanmışsa, aşağıdaki girdi tun(4) aygıtı 1'deki "ali" kullanıcısı ile tun(4) aygıtı 2'deki "veli" kullanıcısı arasında bağlantılara izin verir:
tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... ali tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... veli
SSH tabanlı kurulumun getirdiği ek yük oldukça makul olduğundan, kablosuz VPN'ler gibi geçici kurulumlar için daha uygun olabilir. Daha kalıcı ve daha iyi VPN'ler, ipsecctl(8) ve isakmpd(8) gibi araçlarla sağlanabilir.
ORTAM DEĞİŞKENLERİ
ssh normalde aşağıdaki ortam değişkenlerine atama yapar:
-
DISPLAY
-
DISPLAY
değişkeni X11 sunucusunun konumunu gösterir. ssh bu değişkene otomatik olarak "konak:n
" biçiminde değer atar. Buradakonak
kabuğun çalıştığı sistemi işaret ederkenn
den ≥ 1
koşulunu sağlayan tamsayıya karşılık gelir. ssh bu özel değeri X11 bağlantılarını güvenli kanal üzerinden iletmede kullanır. KullanıcıDISPLAY
değişkenini doğrudan kendisi ayarlamamalıdır, çünkü bu X11 bağlantılarını güvensiz hale getirir (ve ayrıca kullanıcının gerekli olan yetkilendirme çerezlerini elle kopyalamasını da gerektirir). -
HOME
-
Kullanıcının ev dizininin yolu bu değişkene atanır.
-
LOGNAME
-
USER
değişkeni ile aynıdır; bu değişkeni kullanan sistemlerle uyumluluk için tanımlanır. -
MAIL
-
Kullanıcının posta kutusunun yolu bu değişkene atanır.
-
PATH
-
ssh derlenirken belirtilen öntanımlı
PATH
'a ayarlanır. -
SSH_ASKPASS
-
Şayet ssh bir anahtar parolası gerektiriyorsa, bunu mevcut uçbirimden okur (eğer uçbirimden çalıştırılıyorsa). Diğer taraftan ssh bir uçbirimden çalıştırılmıyor fakat
DISPLAY
veSSH_ASKPASS
değişkenleri ayarlanmış iseler, ssh,SSH_ASKPASS
tarafından belirtilen uygulamayı çalıştırır ve anahtar parolasını okumak için bir X11 penceresi açar. Bu özellikle ssh bir .Xsession ya da ilgili betik tarafından çağırılıyorsa yararlıdır. (Burada dikkat edilmesi gereken konu, bu yöntemin çalışması için bazı sistemlerde girdilerin/dev/null
'dan yönlendirilmesi gerektiğidir.) -
SSH_ASKPASS_REQUIRE
-
Parola sorma uygulamasının kullanımı üzerinde daha fazla denetim sağlar. Bu değişkene
“never”
atanırsa ssh asla bu uygulamayı kullanmaya çalışmaz. Eğer“prefer”
atanmışsa, ssh parola isterken TTY yerine bu uygulamayı kullanmayı tercih edecektir. Son olarak, değişkene"force"
atanmışsa,DISPLAY
ortam değişkeninin tanımlı olup olmadığına bakılmaksızın tüm parola girişleri için bu uygulama kullanılacaktır. -
SSH_AUTH_SOCK
-
Ajanla iletişimde kullanılacak Unix-alan soketinin yolunu belirtir.
-
SSH_CONNECTION
-
Bağlantının kurulduğu istemci ve sunucuyu belirtir. Değişken boşluk ile birbirinden ayrılmış 4 değerden oluşur: istemci ip-adresi, istemci portu, sunucu ip-adresi ve sunucu portu.
-
SSH_ORIGINAL_COMMAND
-
Zorunlu bir komutun çalıştırılması durumunda özgün komut satırını içerir. Bu özgün girdileri çıkartmakta kullanılabilir.
-
SSH_TTY
-
Yürürlükteki kabuk ya da komutla ilişkili olan tty'nin adı (aygıt yolu) bu değişkene atanır. Yürürlükteki oturum tty'ye sahip değilse, bu değişkene bir atama yapılmaz.
-
SSH_TUNNEL
-
İsteğe bağlı olarak, istemci tarafından tünel iletme istendiğinde atanan arabirim adlarını içerecek şekilde sshd(8) tarafından tanımlanır.
-
SSH_USER_AUTH
-
İsteğe bağlı olarak sshd(8) tarafından tanımlanan bu değişken, kullanılan tüm genel anahtarlar da dahil olmak üzere, oturum kurulduğunda başarıyla kullanılan kimlik doğrulama yöntemlerini listeleyen bir dosyanın yolunu içerebilir.
-
TZ
-
Zaman Dilimi değişkeni; şayet artalan süreci başlatıldığında tanımlanmışsa geçerli zaman dilimi bu değişkene atanmıştır (Yani, artalan süreci yeni bağlantılara bu değeri aktarır).
-
USER
-
Oturum açan kullanıcının adı bu değişkene atanır.
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.
İLGİLİ DOSYALAR
-
$HOME/.rhosts
-
Bu dosya konak tabanlı kimlik kanıtlama için kullanılır (yukarı bkz.). Bazı makinalarda bu dosyanın erişim haklarının herkes tarafından okunacak şekilde düzenlenmiş olması gerekmektedir (şayet kullanıcının ana dizini NFS bölümünde ise; çünkü sshd(8) bu dosyayı
root
olarak okur). Ayrıca bu dosyanın sahibi kullanıcı olmalı ve hiçbir kimsenin bu dosyaya yazma hakkı bulunmamalıdır. Birçok makina için tavsiye edilen erişim yetkileri, kullanıcı için okuma/yazma hakkı ve diğerleri için ise erişimin olmamasıdır. -
$HOME/.shosts
-
Aynı
.rhosts
'un kullanıldığı şekilde kullanılır, ancak rlogin/rsh ile oturum açmaya izin vermeden konak tabanlı kimlik doğrulaması sağlar. -
$HOME/.ssh/
-
Bu dizin, kullanıcıya özel tüm yapılandırma ve kimlik doğrulama bilgileri için öntanımlı konumdur. Bu dizinin tüm içeriğini gizli tutmak için genel bir gereklilik yoktur, ancak önerilen izinler kullanıcı için okuma/yazma/yürütme olup ve başkaları tarafından erişilememelidir.
-
Ev dizini sahibinin oturum açması için kullanılan genel anahtarları (DSA, ECDSA, Ed25519, RSA) listeler. Dosya biçemi sshd(8) kılavuz sayfasında açıklanmaktadır. Bu hassas bir dosya değildir, ancak tavsiye edilen izinler: Kullanıcı için okuma/yazma izni ve diğer kullanıcılar için ise erişim izni olmamasıdır.
-
$HOME/.ssh/config
-
Kullanıcıya özel yapılandırma dosyası. Dosyanın biçemi ve yapılandırma seçenekleri ssh_config(5)'de açıklanmaktadır. Kötüye kullanım olasılığı nedeniyle, bu dosyanın katı izinlere sahip olması gerekir: Kullanıcı için okuma/yazma izni ve başkaları için yazma yasağı.
-
$HOME/.ssh/environment
-
Ortam değişkenlerinin ek tanımlarını içerir. Yukarıda “ORTAM DEĞİŞKENLERİ” bölümüne bakınız.
-
$HOME/.ssh/id_dsa
$HOME/.ssh/id_ecdsa
$HOME/.ssh/id_ecdsa_sk
$HOME/.ssh/id_ed25519
$HOME/.ssh/id_ed25519_sk
$HOME/.ssh/id_rsa
-
Kimlik kanıtlamasında kullanılan gizli anahtarı içerir. Bunlar hassas dosyalardır ve kullanıcı okuyabilmeli ama başka hiç kimse erişememelidir (okuma/yazma/yürütme). Başkaları tarafından okunabilien bir gizli anahtarı ssh basitçe yoksayar. AES-128 kullanarak bu dosyanın hassas bölümünü şifrelemek için kullanılacak anahtarı üretirken bir anahtar parolası belirtmek mümkündür.
-
$HOME/.ssh/id_dsa.pub
$HOME/.ssh/id_ecdsa.pub
$HOME/.ssh/id_ecdsa_sk.pub
$HOME/.ssh/id_ed25519.pub
$HOME/.ssh/id_ed25519_sk.pub
$HOME/.ssh/id_rsa.pub
-
Kimlik kanıtlamasında kullanılan genel anahtarı içerir. Bunlar hassas dosyalar değildir ve herkes okuyabilirse de bu gerekli değildir.
-
$HOME/.ssh/known_hosts
-
Kullanıcının oturum açtığı,
/etc/ssh/ssh_known_hosts
dosyasında kayıtlı olmayan bütün konakların anahtarlarını içerir. Dosya biçemi hakkında ayrıntılı bilgi için sshd(8) kılavuz sayfasına bakınız. -
$HOME/.ssh/rc
-
Bu dosyadaki komutlar kullanıcı oturum açtığında kullanıcının kabuğu (ya da komut) çalıştırılmadan hemen önce ssh tarafından çalıştırılır. Daha ayrıntılı bilgi için sshd(8) kılavuz sayfasına bakınız.
-
/etc/hosts.equiv
-
Bu dosya konağa dayalı kimlik kanıtlaması içindir (yukarıya bakınız). Sadece sistem yöneticisi (root) tarafından yazılabilir olmalıdır.
-
/etc/shosts.equiv
-
Aynı
/etc/hosts.equiv
gibi işlem görür. Konağa dayalı kimlik kanıtlamasıyla erişimin sağlandığı ancakrsh
/rlogin
'in kullanılmaması gerektiği durumlarda faydalıdır. -
/etc/ssh/ssh_config
-
Sistem yapılandırma dosyası. Dosyanın biçemi ve yapılandırma seçenekleri ssh_config(5)'de açıklanmaktadır.
-
/etc/ssh/ssh_host_key
/etc/ssh/ssh_host_dsa_key
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_rsa_key
-
Bu dosyalar konağın gizli anahtarlarını içerir ve konağa dayalı kimlik kanıtlamasında kullanılır.
-
/etc/ssh/ssh_known_hosts
-
Bilinen konakların anahtarlarını listeleyen sistem dosyası. Bu dosya sistem yöneticisi tarafından hazırlanmalı ve erişilen bütün konakların genel konak anahtarları dosyaya eklenmelidir. Dosya izinleri herkes tarafından okunabilecek şekilde ayarlanmalıdır. Dosya biçemi hakkında ayrıntılı bilgi için sshd(8) kılavuz sayfasına bakınız.
-
/etc/ssh/sshrc
-
Bu dosyadaki komutlar kullanıcı oturum açtığında kullanıcının kabuğu (ya da komut) çalıştırılmadan hemen önce ssh tarafından çalıştırılır. Daha ayrıntılı bilgi için sshd(8) kılavuz sayfasına bakınız.
ÇIKIŞ DURUMU
ssh uzak komutun çıkış durumu ile ya da hata olmuş ise 255 ile sonlanır.
İLGİLİ BELGELER
scp(1), sftp(1), ssh-add(1), ssh-agent(1), ssh-keygen(1), ssh-keyscan(1), tun(4), ssh_config(5), ssh-keysign(8), sshd(8).
STANDARTLAR
S. Lehtinen ve C. Lonvick, Atanmış Güvenli Kabuk (SSH) Protokol Numaraları
T. Ylonen ve C. Lonvick, Güvenli Kabuk (SSH) Protokol Mimarisi, RFC 4251, Ocak 2006.
T. Ylonen ve C. Lonvick, Güvenli Kabuk (SSH) Kimlik Kanıtlama Protokolü, RFC 4252, Ocak 2006.
T. Ylonen ve C. Lonvick, Güvenli Kabuk (SSH) Aktarım Katmanı Protokolü, RFC 4253, Ocak 2006.
T. Ylonen ve C. Lonvick, Güvenli Kabuk (SSH) Bağlantı Protokolü, RFC 4254, Ocak 2006.
J. Schlyter ve W. Griffin, Güvenli Kabuk (SSH) Anahtar parmak İzlerini Güvenilir olarak Yayınlamak için DNS Kullanımı, RFC 4255, Ocak 2006.
F. Cusack ve M. Forssen, Güvenli Kabuk (SSH) Protokolü için Genel İleti Değişimi Kimlik Doğrulaması, RFC 4256, Ocak 2006.
J. Galbraith ve P. Remaker, Güvenli Kabuk (SSH) Oturumu Kanal Kesme Eklentisi, RFC 4335, Ocak 2006.
M. Bellare, T. Kohno ve C. Namprempre, Güvenli Kabuk (SSH) Aktarım Katmanı Şifreleme Kipleri, RFC 4344, Ocak 2006.
B. Harris, Güvenli Kabuk (SSH) Aktarım Katmanı Protokolü için Geliştirilmiş Arcfour Kipleri, RFC 4345, Ocak 2006.
M. Friedl, N. Provos ve W. Simpson, Güvenli Kabuk (SSH) Aktarım Katmanı Protokolü için Diffie-Hellman Grup Değişimi, RFC 4419, Mart 2006.
J. Galbraith ve R. Thayer, Güvenli Kabuk (SSH) Genel Anahtar Dosyası Biçemi, RFC 4716, Kasım 2006.
D. Stebila ve J. Green, Güvenli Kabuk Aktarım Katmanının Eliptik Eğri Algoritması ile Bütünlenmesi, RFC 5656, Aralık 2009.
A. Perrig ve D. Song, Aş Görselleştirme: Gerçek Dünya Güvenliğini Geliştirmek İçin Yeni Bir Teknik, 1999, Uluslararası Kriptografik Teknikler ve E-Ticaret Çalıştayı (CrypTEC '99).
YAZARLAR
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.
ÇEVİREN
* Özgün Belgenin Lisans ve Telif Hakkı bilgileri: * * Author: Tatu Ylonen <ylo@cs.hut.fi> * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland * All rights reserved * * As far as I am concerned, the code I have written for this software * can be used freely for any purpose. Any derived versions of this * software must be clearly marked as such, and if the derived work is * incompatible with the protocol description in the RFC file, it must be * called by a name other than "ssh" or "Secure Shell". * * Copyright (c) 1999,2000 Markus Friedl. All rights reserved. * Copyright (c) 1999 Aaron Campbell. All rights reserved. * Copyright (c) 1999 Theo de Raadt. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.