ssh - OpenSSH uzak oturum açma istemcisi
- 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]...]
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.
- -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ı_arabiriminin 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 portu dinlemek
üzere bir soket ayrılır, seçimlik olarak
bağ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ğrudan
bağlantı_adresi kullanılabilir.
bağlantı_adresi olarak "localhost" dinlenen
porta yalnızca yerel kullanım için
bağlanılacağını belirtirken, boş
bir adres veya "*" portun 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ında
ForkAfterAuthentication yönergesinin
açıklamasına bakınız.
- -G
-
host ve match 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 fazla
hoplama_konağı belirtilebilir. Seçenek
ProxyJump yapılandırma yönergesi için
kısayoldur. Komut satırında belirtilen
yapılandırma yönergeleri, genelde belirtilen
hoplama_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_portuna veya Unix yerel_soketine yapılan
bağlantıların, belirtilen uzak_konaktaki
uzak_porta veya Unix uzak_soketine iletileceğini
belirtir. Bu, isteğe bağlı olarak belirtilen
bağlantı_adresi’ne bağlı yerel
tarafta bir TCP yerel_portu veya bir Unix soketini dinlemek
için bir yerel_soket tahsis edilerek
çalışır. yerel_port veya
yerel_soketten her bağlantı isteğinde,
bağlantı güvenli kanal üzerinden iletilir ve
uzak_konaktaki uzak_porta veya Unix uzak_soketine
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ğrudan bağlantı_adresi
kullanılabilir. bağlantı_adresi olarak
"localhost" dinlenen porta yalnızca yerel
kullanım için
bağlanılacağını belirtirken, boş
bir adres veya "*" portun 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 -Mseç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ında ControlMaster 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 & komutu
shadows.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ında StdinNull 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çenekleri 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) ve sig (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_portu veya bir Unix uzak_soketi tahsis edilerek
sağlanır. Bu porta veya Unix soketine her
bağlantı yapılışında,
bağlantı güvenli kanal üzerinden iletilir ve
yerel_konak ve yerel_port veya yerel_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 "*" belirtilmesi uzak_soketin
tüm arabirimlerden erişilebilir olması
gerektiğini belirtir. bağlantı_adresi
belirtilmesi sadece sunucunun GatewayPorts 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ında ControlPath ve
ControlMaster 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 belirtilen
portuna yönlendirilmesini sağlar. Örtük
olarak -N, -T, ExitOnForwardFailure ve
ClearAllForwardings 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 belirtilen TunnelDevice
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ında
Tunnel ve TunnelDevice 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ı bir Tunnel
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ında ForwardX11Trusted 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.
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.
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)’te PermitLocalCommand
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.
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.
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.
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, 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.
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. Burada
konak kabuğun çalıştığı
sistemi işaret ederken n de n ≥ 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 ve SSH_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.
- $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.
- $HOME/.ssh/authorized_keys
- 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ığı ancak
rsh/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.
ssh uzak komutun çıkış durumu ile ya da hata
olmuş ise 255 ile sonlanır.
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).
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).
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.
© 2004 Emin İslam Tatlı
© 2022 Nilgün Belma Bugüner
Bu çeviri özgür yazılımdır:
Yasaların izin verdiği ölçüde
HİÇBİR GARANTİ YOKTUR.
Lütfen, çeviri ile ilgili bildirimde bulunmak veya çeviri
yapmak için
https://github.com/TLBP/manpages-tr/issues adresinde
"New Issue" düğmesine tıklayıp yeni bir
konu açınız ve isteğinizi belirtiniz.