SSH - sunucuya erişim, komutlar ve şifresiz bağlantı kurma. SSH nasıl kullanılır? Kurulum ve yapılandırmanın yanı sıra (Linux, Windows, macOS, Android, iOS)

  • 23.07.2019

Teşekkürler MadKox

Yapılandırma dosyası örneği

# Efsane: #
# "Varsayılan" ile sshd'nin davranışı kastedilmektedir #
# belirtilmemiş bir yönergeye. Ubuntu'da #
# sshd_config dosyası zaten bir dizi ayarı içeriyor #
#, özellikle Ubuntu için varsayılan ayarlardır. #
# Bu tür ayarlar bu dosyada belirtilmiştir. #
# #

################ Adres/port ayarları vb. ###########
############################################################
# #
## Liman ############################################### #####
# #
# Kullanılacak bağlantı noktası. Birkaç tane belirtebilirsiniz, örneğin: #
# 22 numaralı bağlantı noktası #
# 23 numaralı bağlantı noktası #
# 24 numaralı bağlantı noktası #
# Standart olmayan bir bağlantı noktası kullanılması önerilir, çünkü #
# standart genellikle # için botlar tarafından taranır
# potansiyel "delikler". # verilirse atlanabilir
#adres üzerinden. Ayrıca ListenAddress parametresine bakın. #
# #
8022 numaralı bağlantı noktası
# #
## ListenAdres ##########################################
# #
# Sunucunun "dinlediği" ağ adresi. Adres # olabilir
# şöyle yaz: #
# ListenAddress ana bilgisayarı|IPv4_addr|IPv6_addr #
# ListenAddress ana bilgisayarı|IPv4_addr:bağlantı noktası #
# ListenAddress :port #
# Eğer port ayarlanmazsa sshd bu adresi dinler ve #
# Bağlantı Noktası seçeneğinde belirtilen bağlantı noktasında. # olacaksan
# bir bağlantı noktası belirtmeden ListenAddress'i kullanın, ardından seçenek #
# Bağlantı noktası ListenAddress seçeneğinden önce gelmelidir. # değilse
# belirtin, ardından varsayılan olarak tüm yerelleri dinler #
# adres. Birden fazla adres belirtebilirsiniz. #
# #
## AdresAile ##########################################
# #
# Hangi IP adresi ailesinin olması gerektiğini belirtir #
# sshd kullanıldı. Olası seçenekler: #
# “herhangi bir” herhangi bir #
# "inet" (yalnızca IPv4) #
# "inet6" (yalnızca IPv6) #
# Varsayılan "herhangi biri"dir. #
AdresAile girişi
# #
## KullanımDNS ############################################ ##
# #
# sshd'nin ana bilgisayar adını kontrol edip etmeyeceğini belirtir ve #
# istemci tarafından verilen IP adresini # ile kontrol etmek için bu adı kullanın
# DNS'den alındı. #

# #
############################################################
############## Kullanıcı erişim ayarları ##############
############################################################
# #
# Kullanıcının içeri girmesine izin ver/verme yönergeleri tarafından tanımlanır #
# DenyUsers, AllowUsers, DenyGroups ve AllowGroups. #
# aynı zamanda, kontrol zincir boyunca yukarıdan aşağıya doğru gider: #
# ## Kullanıcıları Reddet ## #
# || #
# ##Kullanıcılara İzin Ver ## #
# || #
# ## Grupları Reddet ## #
# || #
# ## AllowGroups ## #
# Yalnızca kullanıcı ve grup adları kabul edilir, sayısal #
# tanımlayıcı (UserID) tanınmadı. Doğru #
# sırayla birden fazla kullanıcıyı/grubu kaydetme # aracılığıyla
# Uzay. user@host olarak yazılırsa, #
# kullanıcı ve ana bilgisayar ayrı ayrı kontrol edilir, bu #
# ile belirli kullanıcılara erişimi kısıtla #
# belirli ana bilgisayar. Yönergelerin # olduğunu hatırlamakta fayda var.
# DenyUsers ve AllowUsers parametre olarak alır #
# kullanıcı adı ve DenyGroups ve AllowGroups adı #
# grup. Daha fazla bilgi için man ssh_config içindeki DESENLER'e bakın #
# kullanıcı adı ve grup yazma biçimleri hakkında bilgi. #
# #
## DenyUsers ###########################################
# #
# sshd tarafından KULLANILMAMASI GEREKEN KULLANICILARIN listesi. #
# Varsayılan belirtilmedi = kimse yasaklanmadı. Şunlar. eğer #
# burada bir kullanıcı belirtilir, erişim reddedilir #
# ssh sunucusuna. #
# #
## AllowUsers ###########################################
# #
# sshd kullanabilecek KULLANICILARIN listesi, #

# en az bir kullanıcı belirlendi, sunucuya ssh erişimi #
# sadece onun için kullanılabilir. #
# #
## DenyGroups ##########################################
# #
# sshd tarafından KULLANILMAMASI GEREKEN GRUP listesi. #
# Varsayılan olarak belirtilmedi = hiçbir grup yasaklanmadı. #
# yani en az bir grup belirtilmişse, o zaman kullanıcılar, #
# bu grubun üyelerinin ssh'ye erişimi reddedilecek #
# sunucu. #
# #
## AllowGroups ##########################################
# #
# sshd'nin kullanabileceği GRUP listesi. #
# Varsayılan olarak belirtilmemiştir = herkese izin verilir. Şunlar. eğer #
# en az bir grup belirtilir, ardından yalnızca bu kullanıcılar#
# içerdiği öğelerin ssh sunucusuna erişmesine izin verilir.#
# #
############################################################
######### Bağlantı Durumu Algılama Seçenekleri ###########
############################################################
# #
## TCPKeepAlive #########################################
# #
# Sistemin istemciye TCP mesajları göndermesi gerekip gerekmediğini gösterir #
# bağlantıyı sürdürmek için. Bu paketleri gönderirseniz,#
# bağlantı kopması tanımlayabilirsiniz. Ancak bu da #
#, eğer # ise bağlantının sonlandırılabileceği anlamına gelir
# yönlendirmede anlık kesinti ve #
# Bazı insanlar bunu çok sinir bozucu buluyor. Öte yandan, eğer #
# sunucudaki oturumlar bu tür mesajları gönderemez #
# süresiz olarak, "hayalet" kullanıcıları doğurur,#
# ve sunucu kaynaklarını tüketiyor. Varsayılan değer “evet”,#
# yani bu tür mesajlar atın. # göndermeyi devre dışı bırakmak için
Bu tür mesajların sayısı “hayır” olarak ayarlanmalıdır. Daha önce bu #
# seçeneğe KeepAlive adı verildi. Şunu belirtmekte fayda var #
# durumu kontrol etmenin daha güvenli yolları var #
# bağlantı (aşağıya bakın). #
# #
TCPKeepAlive evet
# #
## ClientAliveCountMax ####################################
# #
# sshd yapan istemcilere gönderilen mesajların sayısını ayarlar #
#, herhangi bir yanıt almadan arka arkaya gönderir #
# müşteri. Eşiğe ulaşılırsa ve #
# istemci hiçbir zaman yanıt vermedi sshd iptal ederek istemcinin bağlantısını kesecek #
#ssh oturumu. Bu tür # kullanımının
# iletiler, TCPKeepAlive yönergesinden temel olarak farklıdır. #
# İstemcilere/istemcilerden gelen mesajlar şifreli olarak gönderilir #
# kanaldır ve bu nedenle sahte değildir. Aynı mesajlar #
# TCPKeepAlive sahtedir. Mekanizma istemcisi canlı#
# özellikle sunucu ve istemcinin ihtiyaç duyduğu durumlarda değerlidir #
# bağlantının ne zaman etkin olmadığını bil. Varsayılan #
# değer 3'tür. ClientAliveInterval olması durumunda #
# ayarlandı
# ile bırakılan 5 ve ClientAliveCountMax
# varsayılan olarak, yanıt vermeyen istemcilerin bağlantısı yaklaşık olarak kesilecektir #
# 45 saniye sonra. Bu yönerge yalnızca # için çalışır
# ssh2 protokolü. #
# #
## ClientAliveInterval ####################################
# #
# Zaman aralığını saniye olarak ayarlar. # içinde ise
# bu aralıkta müşteriyle iletişim yoktu, sshd #
# şifreli bir kanal üzerinden mesaj gönderir, #
# müşteriden yanıt isteniyor. Varsayılan 0'dır, yani. #
#bu tür mesajlar göndermeyin. Bu yönerge çalışır #
# sadece ssh2 protokolü için. #
# #
############################################################
################ Genel kimlik doğrulama seçenekleri ################
############################################################
# #
## Yetkili Anahtar Dosyası #####################################
# #
# Genel anahtarları içeren dosyayı belirtir, #
# kullanıcıların kimliğini doğrulamak için kullanılır. Direktif #
#, # ile değiştirilen %M biçiminde işaretler içerebilir
# bağlantı kurma süreci. #
# Aşağıdaki işaretler tanımlanmıştır: #




# Böylece anahtar dosyası # olarak belirtilebilir.
# mutlak yol (yani, anahtarları olan bir ortak dosya) ve #
# kullanıcıya göre dinamik olarak (yani #'ye göre)
kullanıcı başına # dosya). #
# Varsayılan “.ssh/authorized_keys”dir. #
# Kullanıcının ana klasöründeki bir anahtar dosyası örneği: #
# AuthorizedKeysFile %h/.ssh/yetkili_anahtar #
# Genel dosya örneği: #
# AuthorizedKeysFile /etc/ssh/yetkili_anahtarlar #
# Daha fazlası için yetkili_anahtarlar dosyası açıklamasına bakın #
# bilgi. #
# #
## ChallengeResponseAuthentication #########################
# #
# Soru-cevap kimlik doğrulamasına izin verilip verilmeyeceğini gösterir #
# (meydan okuma-yanıt doğrulama). Tüm desteklenen #
# login.conf'dan kimlik doğrulama türleri Varsayılan “evet”, #
# yani izin vermek. #
# Güvenlik nedeniyle Ubuntu'da devre dışı bırakıldı. #
# #
ChallengeResponseAuthentication hayır
# #
## HostbasedUsesNameFromPacketOnly #########################
# #
# Sunucunun istemcinin ana bilgisayar adını nasıl alması gerektiğini belirtir #
# ana bilgisayar doğrulamasına dayalı bir kimlik doğrulama şemasıyla. #
# Dosyalarda tutarlılık kontrolü yapılırken "evet" olarak ayarlanırsa #
# ~/.shosts, ~/.rhosts veya /etc/hosts.equiv sshd # olacaktır
# istemci tarafından sağlanan ana bilgisayar adını kullanın. #
# (ters DNS çözümlemesi yapıyor) "hayır" olarak ayarlanırsa#
# sshd, adı TCP bağlantısının kendisinden çözecektir. #
# Varsayılan "hayır"dır. #
# #
## IgnoreRhosts ########################################
# #
# .rhosts ve .shosts dosyalarının kullanımını devre dışı bırakır #
# ana bilgisayar tabanlı kimlik doğrulama sırasında. #

# /etc/hosts.equiv ve /etc/ssh/shosts.equiv dosyaları hala #
# kullanılmış. #
# Varsayılan "evet"tir. #
# #
IgnoreRhost'lar evet
# #
## IgnoreUserKnownHosts ###################################
# #
# sshd'nin kullanıcı adlarını görmezden gelip gelmeyeceğini belirtir #
# "bilinen ana bilgisayarlar" dosyası ~/.ssh/known_hosts devam ediyor #
# ana bilgisayar doğrulamasına dayalı kimlik doğrulama #
# (RhostsRSAAuthentication veya HostbasedAuthentication). #
# Varsayılan "hayır"dır. #
# #
## Kara Listedeki Anahtarlara İzin Ver ##################################
# #
# sshd'nin # içinde listelenen anahtarları kabul edip etmeyeceğini gösterir
# güvenliği ihlal edilmiş olarak kara liste (güvenliği ihlal edildiği bilinen #
# tuşları (bkz. ssh-vulnkey)). "evet" olarak ayarlanmışsa #
# bu tür anahtarlarla yapılan kimlik doğrulama girişimleri oturum açacaktır #
# günlüğe kaydedilir ve değer “hayır” ise kabul edilir denemeler #
# kimlik doğrulama reddedilecek. #
# Varsayılan "hayır"dır. #
# #
## İzinBoşParolalar ###################################
# #
# Şifre doğrulamaya izin veriliyorsa, #
#, boş bir parola ile oturum açmanın mümkün olup olmadığını gösterir. #
# Varsayılan "hayır"dır. #
# #
PermitBoşŞifreler hayır
# #
## PermitRootLogin #######################################
# #
# Süper kullanıcı olarak ssh oturum açmaya izin verilip verilmediğini gösterir #
# (kök). Değer alabilir: #
# "evet" süper kullanıcı giriş yapabilir. # geçerlidir
# mevcut global kimlik doğrulama şeması. #
# #
# "şifresiz" süper kullanıcı giriş yapabilir. #
# Bunun için şifre doğrulaması devre dışı bırakılacak. #
# #
# "sadece zorunlu komutlar" süper kullanıcı oturum açabilecek, #
# ortak anahtar kimlik doğrulamasını kullanma ve #
# yalnızca yürütülecek bir komutu geçerse. #
# Bu, yedekleme için kullanışlıdır, #
# normal olduğunda bile (yani ssh ile değil) #
# süper kullanıcı girişi reddedildi. Diğer tüm yöntemler #
# Süper kullanıcı için kimlik doğrulamaları devre dışı bırakılacak.#
# #
# "hayır" süper kullanıcı # için ssh kullanamaz
# giriş yapmak. #
# #
# Varsayılan değer "evet" dir". #
# #
PermitRootGiriş no
# #
## Protokol ############################################### #
# #
# sshd'nin hangi protokolü kullanması gerektiğini belirtir. #
# Olası değerler '1' ve '2' ssh1 ve ssh2'dir #
# sırasıyla. # ile eşzamanlı kayıt mümkündür
# virgülle ayrılmalıdır. #
# Varsayılan “2.1”dir. #
# # deki protokol sırasının
# giriş bir öncelik belirlemez, çünkü müşteri hangisini seçer #
# sunucu tarafından kendisine sunulan çeşitli protokollerden #
# kullanın. "2,1" gösterimi tamamen aynı #
# "1,2" kaydeder. #
# #
Protokol 2
# #
## UsePAM ############################################ ##
# #
# PAM (Takılabilir Kimlik Doğrulama Modülü) arayüzünü etkinleştirir #
# arayüz).Tüm türler için "evet" olarak ayarlanmışsa #
# oturum ve hesap modülünün işlenmesine ek olarak kimlik doğrulama #
# PAM, # tabanlı kimlik doğrulamasını kullanacak
# istek-yanıt (ChallengeResponseAuthentication ve #
# Şifre Doğrulama) kimlik doğrulama #
# PAM'deki istek-yanıt genellikle # ile aynı rolü gerçekleştirir
# parola doğrulama ile aynı, devre dışı bırakmalısınız #
# ya Parola Doğrulama ya da #
# ChallengeResponseAuthentication. Şunu belirtmekte fayda var #
# UsePAM yönergesi etkinleştirilirse çalıştıramazsınız #
# sshd root dışında bir kullanıcı olarak. #
# Varsayılan değer hayır". #
# #
KullanPAM evet
# #
## Şifre Doğrulama #################################
# #
# # kullanılarak kimlik doğrulamaya izin verilip verilmediğini gösterir
# şifre. #
# Varsayılan "evet"tir. #
# #
Şifre Doğrulama evet
#
## HostKey ############################################ # #
# #
# Özel ana bilgisayar anahtarını içeren dosyayı belirtir, #
# SSH kullanılacak. Varsayılan /etc/ssh/ssh_host_key #
# ssh protokolü için
ve /etc/ssh/ssh_host_rsa_key ve #
# /etc/ssh/ssh_host_dsa_key ssh2 protokolü için. Maliyetler #
# sshd'nin dosyayı kullanmayacağını not edin, #
# kullanıcı dışında herkes tarafından kullanılabilir. Olabilmek #
# "rsa1" anahtarları ile birden fazla dosya kullanın #
# ssh1 protokolü için ve ssh2 protokolü için “dsa”/“rsa”. #
# #
HostKey /etc/ssh/ssh_host_rsa_key
Ana BilgisayarAnahtarı /etc/ssh/ssh_host_dsa_key
# #
############################################################
########## SSH sürüm 1 protokol seçenekleri (ssh1) #############
############################################################
# ssh1 protokolünün kullanılması kesinlikle TAVSİYE EDİLMEZ.#
# ssh2 protokolü, ssh1'den çok daha güvenlidir #
############################################################
# #
## Anahtar Yenileme Aralığı #################################
# #
# Belirli bir zamanda ssh1 protokolü için #
# otomatik olarak yeni bir geçici sunucu anahtarı oluşturulur #
# (eğer kullanılmışsa). Bu # için yapılır
# engellenen oturumların şifresinin çözülmesini önlemek için #
# daha sonra bu oturumların parametreleriyle makineye giriş yapın ve #
# anahtarları çal. Bu anahtar hiçbir yerde saklanmaz (#
# rasgele erişim belleği). Bu yönerge # dönemini belirtir.
# Anahtarın saniye cinsinden "ömrü", bundan sonra #
#yenilendi. Değer 0 olarak ayarlanmışsa #
# anahtar yeniden oluşturulmayacak. #
# Varsayılan değer 3600'dür (saniye). #
# #
AnahtarYenilemeAralığı 3600
# #
## RhostsRSADoğrulama ################################
# #
# Dosya tabanlı kimlik doğrulamanın gerekli olup olmadığını gösterir #
# başarılı ile birlikte rhosts veya /etc/hosts.equiv #
# RSA aracılığıyla ana bilgisayar kimlik doğrulaması. #

# Varsayılan "hayır"dır. #
# #
RhostsRSADoğrulama yok
# #
## RSAKimlik Doğrulama ######################################
# #
# "Saf" RSA kimlik doğrulamasına izin verilip verilmediğini gösterir. #
# Yalnızca ssh1 protokolü için geçerlidir. #
# Varsayılan "evet"tir. #
# #
RSAKimlik Doğrulama numarası
# #
## ServerKeyBits #########################################
# #
# Sunucunun geçici anahtarındaki bit sayısını belirtir #
# ssh1 protokolü. Minimum değer 512'dir. #
# Varsayılan değer 1024'tür. #
Sunucu AnahtarıBitleri 1024
# #
############################################################
########### SSH sürüm 2 protokol seçenekleri (ssh2) ############
############################################################
# #
## Şifreler ############################################ #
# #
# için izin verilen şifreleme algoritmalarını belirtir #
# ssh2 protokolü. Birkaç algoritma # olmalıdır
# virgüllerle ayrılmış. Desteklenen algoritmalar: #
# “3des-cbc”, “aes128-cbc”, “aes192-cbc”, “aes256-cbc”, #
# “aes128-ctr”, “aes192-ctr”, “aes256-ctr”, “arcfour128”, #
# "arcfour256", "arcfour", "blowfish-cbc", "cast128-cbc". #

# aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, #
# arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, #
# aes192-ctr, aes256-ctr #
# #
## HostbasedAuthentication ################################
# #
# # tabanlı kimlik doğrulamaya izin verilip verilmediğini gösterir
# ev sahibi kontrol ediliyor. rhosts veya /etc/hosts.equiv kontrol ediliyor, #
# ve başarılı olursa, başarılı doğrulama ile birlikte #
# ortak anahtar, erişime izin verilir. Bu yönerge #
#, RhostsRSAAuthentication yönergesiyle aynıdır ve #
# sadece ssh2 protokolü için geçerlidir. #
# Varsayılan "hayır"dır. #
# #
Ana Bilgisayar Tabanlı Kimlik Doğrulama hayır
# #
## MAC'ler ############################################# ####
# #
# Geçerli bir MAC algoritmasını gösterir (mesaj #
# kimlik doğrulama kodu). Kullanılan MAC algoritması #
# ssh2 veri bütünlüğünü korumak için. Birçok #
# algoritma virgülle ayrılmalıdır. #
# Varsayılanlar: #
# hmac-md5,hmac-sha1, [e-posta korumalı],hmac-ripemd160, #
# hmac-sha1-96,hmac-md5-96 #
# #
## PubkeyAuthentication ###################################
# #
# Kimlik doğrulamaya izin verilip verilmediğini gösterir #
# Genel anahtar. Yalnızca ssh2 protokolü için geçerlidir. #
# Varsayılan "evet"tir. #
# #
PubkeyAuthentication evet
############################################################
#################### GSSAPI Seçenekleri #########################
############################################################
# #
############# Yalnızca ssh2 protokolü için geçerlidir ###########
# #
## GSSAPIAuthentication ##################################
# #
# # üzerinde kullanıcı kimlik doğrulamasına izin verilip verilmediğini gösterir
# GSSAPI'ye dayalıdır. Varsayılan "hayır"dır, yani. yasak. #
# #
## GSSAPIKeyExchange #####################################
# #
# # tabanlı anahtar değişimine izin verilip verilmediğini gösterir
#GSSAPI. GSSAPI anahtar değişimi #'ye dayanmaz
# ssh anahtarları, ana bilgisayar kimliğini doğrularken. #
# Varsayılan "hayır" yani takas yasaktır. #
# #
## GSSAPICleanupCredentials ###############################
# #
# Otomatik olarak yok edilip edilmeyeceğini gösterir #
# olduğunda özel kimlik doğrulama önbelleği #
#oturumu sonlandır. #
# Varsayılan "evet" yani. yok edilmesi gerekiyor. #
# #
## GSSAPIStrictAcceptorCheck ##############################
# #
# Kontrolün ne kadar katı olması gerektiğini gösterir #
# GSSAPI aracılığıyla kimlik doğrulaması yapılırken müşteri kimliği. #
# "evet" değeri, istemcinin # içinde kimlik doğrulaması yapmasına neden olur
# mevcut ana bilgisayardaki alıcı ana bilgisayar hizmeti. Anlamı "hayır" #
# istemcinin herhangi bir # ile kimlik doğrulaması yapmasına izin verir
# hizmet anahtarı. #
# Varsayılan değer "evet" dir". #
# Değeri "hayır" olarak ayarlamanın #
# yalnızca nadir Kerberos GSSAPI kitaplıklarıyla çalışır. #
# #
############################################################
################### Kerberos Seçenekleri #########################
############################################################
# #
## KerberosAuthentication #################################
# #
# Sağlanan parolanın # gerektirip gerektirmediğini gösterir
# kullanıcının kimliğini doğrulamak için #
# Kerberos KDC'de (PasswordAuthentication) doğrulamaları. #
# Bu seçeneği kullanmak için sunucunun #
# KDC'nin doğru olduğundan emin olun. (Sunucunun bir #
# Doğrulamasına izin veren Kerberos servtab #
# KDC'nin kimliği) #
# Varsayılan "hayır"dır. #
# #
## KerberosGetAFSToken ###################################
# #
# AFS aktifse ve kullanıcı bir Kerberos 5 TGT aldıysa, #
# kullanıcıdan önce bir AFS belirteci almaya çalışılıp çalışılmayacağı #
# ana klasörüne erişecek. #
# Varsayılan "hayır"dır. #
# #
## KerberosOrLocalPasswd #################################
# #
# Kimlik doğrulaması yapılırsa ne yapılacağını belirtir #
# Kerberos aracılığıyla başarısız oldu. Eğer bir #
# değer = "evet" şifre # ile doğrulanacak
# herhangi bir ek yerel yetkilendirme mekanizması, #
# örneğin /etc/passwd. #
# Varsayılan "evet"tir. #
# #
## KerberosTicketCleanup #################################
# #
# Dosyanın # ile otomatik olarak yok edilip edilmeyeceğini belirtir
# oturum sona erdiğinde kullanıcının bilet önbelleği. #
# Varsayılan "evet"tir. #
# #
############################################################
################# Yönlendirme seçenekleri ####################
############################################################
# #
## AllowAgentForwarding ###################################
# #
# Yönlendirmeye izin verilip verilmeyeceğini belirtir #
# ssh-agent"a. Varsayılan "evet"tir, yani izin ver. #
# Yönlendirmeleri devre dışı bırakmanın #
# kullanıcılara kadar güvenliği artırın #
# kabuk erişimi reddedildi çünkü her zaman # ayarlayabilirler
# kendi ajan meslektaşlarınız. #
# #
AllowAgentYönlendirme hayır
# #
## AllowTcpForwarding ###################################
# #
# TCP yeniden yönlendirmesine izin verilip verilmeyeceğini belirtir. #
# Varsayılan "evet", yani. izin vermek. Kayda değer, #
# AllowAgentForwarding devre dışı bırakma durumunda olduğu gibi #
# yönlendirmeler, # olmadıkça güvenliği artırmaz
# kullanıcı konsol erişimine sahip olacak, çünkü yapabilirler #
# muadillerinizi kurun. #
# #
# #
AllowTcpYönlendirme hayır
# #
## Ağ GeçidiPortları ###########################################
# #
# Uzak ana bilgisayarların # öğesine erişmesine izin verilip verilmeyeceğini belirtir
# iletilen bağlantı noktaları. Varsayılan olarak, sshd dinliyor #
# yalnızca yerel ana bilgisayardaki iletilen bağlantı noktalarına bağlantı #
# arayüz (geri döngü). Başka kumanda vermiyor #
# ana bilgisayar yönlendirilen bağlantı noktalarına bağlanır. Olabilmek #
# sshd'nin bunu yapmasına izin vermek için GatewayPorts'u kullanın #
# yapmak. Yönerge 3 değer alabilir: #
# sadece "hayır" geridönüş. #
# "evet" - herhangi bir adres. #
# müşteri tarafından belirtilen "istemci tarafından belirtilen" adresler. #
# #
Ağ Geçidi Bağlantı Noktaları hayır
# #
## PermitOpen ###########################################
# #
# TCP bağlantı noktası iletmeye nerede izin verildiğini belirtir. #
# Yönlendirme ipucu aşağıdakilerden birini almalıdır:
# aşağıdaki formlardan: #
# PermitOpen ana bilgisayarı:bağlantı noktası #
# PermitOpen IPv4_addr:port #
# PermitOpen :port #
# Birden fazla giriş, boşluklarla ayrılarak belirtilebilir. #
# Tümünü kaldırmak için “any” argümanı kullanılabilir #
# port yönlendirmeyi yasaklar. Varsayılan herhangi bir #
# yönlendirmeye izin verildi. #
# #
## İzin Tüneli ##########################################
# #
# Tun cihazının yeniden yönlendirilmesine izin verilip verilmediğini gösterir. #
# Değer alabilir: #
# "evet" #
# “noktadan noktaya” (3. ağ katmanı) #
# “ethernet” (2. ağ katmanı) #
# "hayır" #
# "evet" değeri aynı anda "noktadan noktaya" izin verir #
# ve "ethernet". Varsayılan "hayır"dır. #
# #
############################################################
################## Kayıt Seçenekleri ####################
############################################################
# #
## SyslogFacility #######################################
# #
# Mesaj yazmak için günlük nesne kodunu belirtir #
# sshd'den sistem günlüğü. Olası değerler: #
#DAEMON#
#KULLANICI#
#YETKİN#
#YEREL0#
#YEREL1#
#YEREL2#
#YEREL3#
#YEREL4#
#YEREL5#
#YEREL6#
#YEREL7#
# Varsayılan AUTH'dir. #
# #
SyslogTesis Yetkilendirmesi
# #
## LogLevel ############################################ #
# #
# sshd günlüğünün ayrıntı düzeyini ayarlar. #
# Olası seçenekler: #
#SESSİZ#
#SESSİZLİK#
#ÖLÜMCÜL#
# HATA #
#BİLGİ#
#VERBOSE#
#DEBUG#
#DEBUG1#
#DEBUG2#
#DEBUG3#
# Varsayılan BİLGİ'dir. #
# DEBUG ve DEBUG
birbirine eşdeğerdir. #
# DEBUG2 ve DEBUG3 en yüksek hata ayıklama seviyelerini belirler #
# çıktı. DEBUG seviyesiyle günlüğe kaydetme # tehdit ediyor
# kullanıcı gizliliği ve tavsiye edilmez. #
# #
LogLevel BİLGİ
# #
############################################################
################### Yönlendirme X

####################
############################################################
# #
## X11Yönlendirme #########################################
# #
# Grafik yeniden yönlendirmeye izin verilip verilmediğini gösterir #
# X11 alt sistemleri. "Evet" veya "hayır" değerlerini alabilir. #
# Varsayılan "hayır"dır. #
# Dikkat, basit bir X11 yönlendirmesini etkinleştirir #
# hem sunucu hem de istemciler için büyük bir risk çünkü içinde #
# böyle bir yeniden yönlendirme proxy gösterimi olması durumunda sshd #
# herhangi bir adresten gelen bağlantıları kabul eder. Kullanmak #
# erişimi kısıtlamak için X11UseLocalhost yönergesi #
# "x" yönlendirme sunucusuna. Şunu belirtmekte fayda var #
# yeniden yönlendirmeyi devre dışı bırakmak bunu garanti etmez #
# kullanıcılar X11'i yeniden yönlendiremeyecek çünkü # sahip olmak
# konsol erişimini her zaman kendileri belirlerler #
# yeniden yönlendirici. X11 yönlendirmesi # olacak
# etkinleştirilirse otomatik olarak devre dışı bırakılır #
# UseLogin yönergesi. #
# #
X11Yönlendirme hayır
# #
## X11UseLocalhost ######################################
# #
# sshd'nin kapsamı sınırlaması gerekip gerekmediğini gösterir #
# X11'i yerel bir geri döngü adresine yönlendirin veya #
# herhangi bir adrese izin vermelidir. Varsayılan sshd #
# X11 yönlendirme sunucusunu yerel bir adrese "yerleştirir" #
# ve EKRAN ortam değişkeninin # öğesine karşılık gelen kısmını ayarlar
# "localhost" olarak ana bilgisayar adı için. Şunu belirtmekte fayda var #
# bazı eski X11 istemcileri bunlarla çalışmayabilir #
# ayarlar. Varsayılan "evet", yani. # yönlendirme
# localhost ile sınırlıdır, "hayır" devre dışı bırakır #
# kısıtlamalar. #
# #
## XAuthLocation ########################################
# #
# xauth programının tam yolunu belirtir. #
# Varsayılan /usr/bin/X11/xauth. #
# #
## X11DisplayOffset ######################################
# #
# sshd için kullanılabilen ilk ekranın numarasını belirtir #
# X11 yönlendirmesi olarak. Bu # için yapılır
# böylece yönlendirilen x'ler # ile kesişmesin
# gerçek. Varsayılan 10'dur. #
# #
X11EkranOfset10
# #
############################################################
################### Çeşitli seçenekler ########################
############################################################
# #
## LoginGraceTime ########################################
# #
# Sunucunun bağlantısının kesildiği süre #
# kullanıcı tatmin edici bir şekilde yapamadıysa #
# giriş yapmak. 0 değeri, kullanıcının #
# süresiz giriş yapın. Varsayılan değer 120'dir (saniye). #
# #
GirişGraceTime 120
# #
## MaxAuthTries #########################################
# #
# Maksimum kimlik doğrulama denemesi sayısını belirtir, #
# bağlantı başına izin verilir. #
# Başarısız deneme sayısı yarıyı geçer geçmez #
# verilen değer, sonraki tüm denemeler # olacaktır
# günlüğe kaydedilir. Varsayılan değer 6'dır. #
# #
MaxAuth Denemeleri 4
# #
## MaxSessions ##########################################
# #
# Eşzamanlı bağlantıların maksimum sayısını belirtir #
# her ağ bağlantısı için. Varsayılan 10'dur. #
# #
MaxSessions1
# #
## MaxStartups #########################################
# #
# Eşzamanlı maksimum sayısını belirtir #
# sshd'ye yetkisiz bağlantı. Eğer #
# bağlantı sayısı tüm ek limitleri aşacak #
# bağlantı, geçerli # olana kadar sıfırlanacak
# bağlantılar tamamlanmayacak veya başarılı bir yetkilendirme olmayacak, #
# veya direktifte belirtilen sürenin dolması #
# GirişGraceTime. Varsayılan değer 10'dur. #
# Ek olarak, erken bağlantı sıfırlama ayarlayabilirsiniz, #
# parametre olarak # ile ayrılmış üç değer belirtme
# iki nokta üst üste “başlangıç:hız:dolu” (örneğin: "10:30:60"). #
# sshd, bağlantı girişimini #'e eşit bir olasılıkla reddedecek
# "oran/100" (yani örneğimizde %30) zaten varsa #
# yetkisiz bağlantıların “başlangıcı” (10) var. #
# Olasılık doğrusal olarak artar ve herhangi bir deneme #
# yetkisiz bağlantı sayısı varsa reddedilecektir #
Bağlantı sayısı “dolu”ya (60) ulaşacaktır. #
# #
## Sıkıştırma ############################################
# #
# Veri sıkıştırmanın etkin olup olmadığını gösterir. Belki #
# "evet" sıkıştırmasına izin verilir. #
# "gecikmeli" sıkıştırma # kadar ertelenir
# kullanıcının kimliği başarıyla doğrulanmadı. #
# "hayır" sıkıştırma devre dışı bırakıldı. #
# Varsayılan "gecikmeli". #
# #
## KullanımGiriş ############################################
# #
# Girişin # için kullanılması gerekip gerekmediğini gösterir
# etkileşimli oturum. Varsayılan değer hayır". #
# Girişin hiçbir zaman # için kullanılmadığını unutmayın.
# uzak komutları çalıştır. Ayrıca #
# oturum açmayı kullanmak, kullanmayı imkansız hale getirecek #
# X11 Yönlendirme yönergeleri çünkü oturum açmanın ne olduğunu bilmiyor #
# xauth ile yapmalı. # yönergesi dahil edilmişse
# UsePrivilegeSeparation # sonra devre dışı bırakılacak
# yetki. #
# #
## UsePrivilegeSeparation #################################
# #
# sshd'nin ayrıcalıkları paylaşıp paylaşmayacağını belirtir. Şayet evet ise #
# o zaman önce imtiyazsız bir çocuk yaratılacak #
# gelen ağ trafiği için işlem. Başarılı bir #
# yetkilendirme, ayrıcalıklara sahip başka bir süreç yaratacaktır #
# oturum açmış kullanıcı. Ayrılığın asıl amacı #
# erişim ihlallerini önlemek için ayrıcalıklar. #
# Varsayılan değer "evet" dir". #
# #
UsePrivilegeSeparation evet
# #
## KatıModlar #########################################
# #
# sshd'nin erişim modlarını kontrol edip etmeyeceğini belirtir ve #
# önce kullanıcı klasörlerinin ve dosyalarının sahipliği #
# kullanıcının oturum açmasına izin verin. Bunun nedeni genellikle #
# yeni başlayanlar genellikle dosyalarını yazılabilir hale getirir #
# hepsi arka arkaya Varsayılan "evet" dir. #
# #
KatıModlar evet
# #
## Kabul EtEnv ############################################
# #
# Hangi ortam değişkenlerinin iletildiğini gösterir #
# müşteri tarafından kabul edilecektir. İstemcideki SendEnv seçeneğine bakın. #
# Unutulmamalıdır ki değişkenleri geçmek sadece mümkündür #
# ssh2 protokolü için. Değişkenler isimle belirtilir, #
# joker karakterler ('*' ve '?') kullanılabilir. # belirtebilirsiniz
# boşlukla ayrılmış veya #'ye bölünmüş birden çok değişken
# birden çok satır AcceptEnv. Biraz dikkatli ol #
# ortam değişkenlerini atlamak için kullanılabilir #
# yasaklanmış kullanıcı ortamları. Bunu kullan #
# direktif dikkatlice. Varsayılan olarak yok #
# kullanıcı tanımlı ortam değişkenleri kabul edilmiyor. #
# #
Kabul EtEnv LANG LC_*
# #
## PermitUserEnvironment ##################################
# #
# sshd'nin kabul edip etmeyeceğini gösterir #
# ~/.ssh/environment ve çevre= # seçeneği
# ~/.ssh/yetkili_anahtarlar. Varsayılan "hayır"dır. Maliyetler #
# çevreyi işleme izninin verebileceğine dikkat edin #
# kullanıcı bazı kısıtlamaları atlama yeteneği #
# gibi mekanizmalar kullanan konfigürasyonlar
# LD_PRELOAD. #
# #
# #
## PidFile ########################################### # #
# #
# İşlem kimliğini içeren dosyayı belirtir #
SSH arka plan programının # (işlem kimliği, PID). #
# Varsayılan /var/run/sshd.pid #
# #
# #
## PrintLastLog #########################################
# #
# sshd'nin tarih ve saati gösterip göstermeyeceğini belirtir #
# kullanıcı etkileşimli olarak oturum açtığında son oturum. #
# Varsayılan "evet"tir. #
# #
PrintLastLog evet
# #
## PrintMotd ###########################################
# #
# sshd'nin /etc/motd yazdırıp yazdırmayacağını belirtir #
# kullanıcı etkileşimli olarak oturum açtığında. Bazı #
# sistemler (örneğin Ubuntu) bu bilgi aynı zamanda #
# kabuk tarafından ekrana yazdırılır. #
# Varsayılan değer "evet" dir". #
# #
BaskıMod yok
# #
## Afiş ############################################### ###
# #
# Hangi dosyanın metin başlığını içerdiğini gösterir #
# prosedürden ÖNCE kullanıcıya gösterilecektir #
# kimlik doğrulama. Seçenek yalnızca ssh2 protokolü için kullanılabilir.#
# Varsayılan olarak hiçbir şey göstermez. #
# Ubuntu'da, issue.net Ubuntu (sürüm) ifadesini içerir, #
# örneğin, karmik için "Ubuntu 9.10". Olabilmek #
# olası saldırganları şaşırtmak için kullanılır, #
# oraya yazmak, örneğin "D-Link İnternet Yönlendiricim" =) #
# #
Başlık /etc/issue.net
# #
## ChrootDirectory #######################################
# #
# Belirtilirse, # olacak yolu sağlar.
# kimlik doğrulamadan sonra chroot yapıldı. Yol ve hepsi #
# içerik sahip olunanlarla eşleşmelidir #
# süper kullanıcı klasörü ve erişilemez #
Diğer kullanıcılar tarafından # gönderi. #
# Yol, # ile değiştirilen etiketler içerebilir.
# kimlik doğrulama işlemi: #
# %%, değişmez "%" ile değiştirilir #
# %h ev dizini ile değiştirilir #
# kullanıcının kimliğini doğruluyor #
# %u, kimliği doğrulanan kullanıcının adıyla değiştirilir #
# chroot klasörü gerekli tüm dosyaları ve #
kullanıcı oturumu için # klasör. Etkileşimli # için
En az # oturum gerekli: #
# kabuk, genellikle sh #
# /dev'deki temel cihazlar, örneğin: #
# null, sıfır, stdin, stdout, stderr, arandom ve tty #
# sftp yok kullanan bir veri oturumu için #
# kullanılırsa ek ayar gerekmez #
# sftp sunucusunun dahili işlemi. # için Alt Sisteme bakın
# daha fazla bilgi. Varsayılan olarak, chroot gerçekleştirilmez. #
# #
## ForceCommand ##########################################
# #
# Belirtilen komutun yürütülmesine neden olur. # yok sayar
# istemci tarafından verilen veya yazılan herhangi bir komut #
# ~/.ssh/rc. Komut # kullanıcısından çağrılır
# -c seçeneğiyle kabuklar. Kabuk fırlatmaya uygun, #
# komutlar veya alt sistemler. En kullanışlı blok #
# kibrit. İstemci tarafından orijinal olarak gönderilen komut saklanır #
# SSH_ORIGINAL_COMMAND ortam değişkeninde. Eğer bir #
# "internal-sftp" komutunu belirtin, çalışacaktır #
# ek ihtiyaç duymayan dahili sftp sunucusu #
# ChrootDirectory yönergesinde açıklanan dosya ve klasörler. #
# #
## Alt Sistem ############################################
# #
# Harici bir alt sistemi tanımlar ve yapılandırır (örn. #
# dosya aktarım arka plan programı). #
# Bağımsız değişkenler ad ve komuttur (isteğe bağlı # ile
# argüman) istek sırasında yürütülecek #
# alt sistemlere. sftp-server komutu "sftp"yi başlatır #
# dosya aktarım alt sistemi. Ek olarak, # belirtebilirsiniz
# çalıştıracak "internal-sftp" alt sistemi olarak #
# dahili sftp sunucusu. Bu büyük ölçüde basitleştirebilir #
# direktifin kullanılması durumunda ayar #
# ChrootDirectory Varsayılan olarak alt sistem yok #
#çağrılmadı. Yalnızca ssh2 protokolü için geçerlidir. #
# #
#Subsystem sftp /usr/lib/openssh/sftp-server #
# #
############################################################
##################### Maç bloğu ##########################
############################################################
# #
# Dosyayı daha kullanışlı hale getirmek için özellikle sonuna taşındı #
# Maç kurallarını yaz. #
#MadKox. #
# #
# Match yönergesi koşullu yönergenin başlangıcıdır #
# engellemek. # satırında belirtilen tüm kriterler karşılanıyorsa
# Match, bloğun sonraki satırlarındaki yönergeler yürütülür,#
# global dosya yönergelerinin değerlerini atlamanıza izin verir #
# yönerge kriteri olan durum için sshd_config #
# kibrit. # satırından sonraki tüm satırlar blok olarak kabul edilir.
# kriteri ile (Maç çizgisi) bir sonraki eşleşme çizgisine kadar #
# veya dosyanın sonuna kadar. Yönerge bağımsız değişkenini bir veya # ile eşleştirin
# birden çok kriter girişi çifti. Olası kayıt türleri: #
#Kullanıcı#
#Grup#
#Ev sahibi#
#Adres#
# Kayıtlar her iki tek değeri de içerebilir #
# (ör. Kullanıcı=kullanıcı) ve birden çok değer, #
# virgülle ayrılır (Kullanıcı=kullanıcı1,kullanıcı2). Onlarda yapabilir #
# içinde açıklanan normal ifadeler kullanılabilir
# ssh_config'in DESENLER bölümü. # kriterindeki girişler
# Adres, CIDR gösteriminde adresleri içerebilir #
# (Adres/Maske Uzunluğu, ör. “192.0.2.0/24” veya #
# "3ffe:ffff::/32"). Sunulan #
# maskenin uzunluğu adresle eşleşmeli ve ayrıca #
# adres için uzun/kısa çalışmaz. #
# Eşleştirme yönergeleri yalnızca # kullanabilir
# belirli bir dizi yönerge: #
# AllowTcpYönlendirme #
#Afiş#
#ChrootDirectory#
#KuvvetKomut#
#GatewayPortlar#
# GSSAPIKimlik Doğrulama #
# Ana Bilgisayar Tabanlı Kimlik Doğrulama #
#KbdInteractiveAuthentication#
#KerberosKimlik Doğrulaması#
#MaxAuthDeneme#
#MaxSessions#
#Parola Doğrulama#
# Açmaya İzin Ver #
# PermitRootGiriş #
#RhostsRSADoğrulama#
# RSAKimlik Doğrulama #
#X11EkranOfseti#
#X11Yönlendirme#
#X11YerelAna Bilgisayarı Kullan#

Yapılandırmaya hemen küçük bir not, kök kullanıcı olarak ssh aracılığıyla oturum açma özelliğini devre dışı bırakır, yani " amatör"PermitRootLogin ayarını evet olarak değiştirin

Yukarıdaki yapılandırmayı unix makinenize kopyalamak için
sshd_config yapılandırma dosyasının depolandığı dizine gidin

Sudo cd /etc/ssh

sshd_config dosyasının bir yedek kopyasını oluşturduğumuz için onu sileceğiz

sudo rm sshd_config

Yine /etc/ssh dizininde, itautsors sitesinden yukarıdaki ssh yapılandırma dosyasını kopyalayın,

sudo wget http://website/sshd_config

Daemon'u yeniden başlatın

sudo hizmeti ssh yeniden başlatma

SSH arka plan programının çalıştığından emin olun

Ps-A | grep sshd

Böyle bir şey göreceğiz.

<какой то номер>? 00:00:00

Satır yoksa, SSH arka plan programı çalışmıyordur,

Gelen bağlantıların dinleyip dinlemediğini kontrol edin:

Sudo ss -lnp | grep sshd

Cevap olarak alıyoruz

0 128:::22:::* kullanıcılar:(("sshd",16893,4)) 0 128 *:22 *:* kullanıcılar:(("sshd",16893,3))

Birden fazla satır varsa, o zaman SSH arka plan programı birden fazla bağlantı noktasını dinliyor, bir değilse, en az bir bağlantı noktası belirtilmelidir, her iki durumda da geri dönüp yapılandırma dosyasını düzenlemek gerekir.

Yerel bilgisayardan giriş yapmayı deneyelim (yani, ssh sunucusunu kurduğumuz aynı bilgisayardan giriş yapıyoruz, tabiri caizse ilk kontrol), (portumuzun standart 8022 olmadığını unutmayın):

ssh -v yerel ana bilgisayar -p 8022

Hata ayıklama bilgileri görüntülenecek ve bir parola girmeniz istenecektir.
Başarılı bir bağlantıdan sonra çıkmak için şunu yazın:

Anahtar yetkilendirmesi ile OpenSSH İstemcisi ile OpenSSH Sunucusuna erişimi ayarlayın

Verilen: OpenSSH İstemci ana bilgisayarından NameUserOnOpenSSHServer kullanıcısı altında ileride ssh üzerinden oturum açmak istediğimiz OpenSSH Sunucu ana bilgisayarı.Bağlanmak istediğimiz Ana Bilgisayar (OpenSSH İstemcisi) üzerinde bir anahtar çifti oluşturalım. Anahtar çiftinin zaten oluşturulmuş olup olmadığını kontrol edin.
Anahtarın kaydedildiği yer (/home/NameUserOnOpenSSHClient/.ssh/id_rsa) ile anlaştıktan sonra, parola boş bırakılabilir, daha sonra bir sertifika ile kimlik doğrulaması yapılırken, daha az güvenli olan ancak daha fazla olan parolayı nazikçe girmeyecektir. daha uygun (bizim örneğimizde şifre girmeyeceğiz):

ssh-keygen -t rsa -b 4096

Oluşturmanın başlatıldığı kullanıcının ~/.ssh ana klasöründe (örneğimizde NameUserOnOpenSSHClient) dosyaları OpenSSH İstemcisi ana bilgisayarında görünecektir:

~/.ssh/id_rsa.pub halka açık
~/.ssh/id_rsaözel

Klasör ve dosyalar üzerindeki izinleri ayarlayın
OpenSSH İstemcisi üzerinde üretimi hangi kullanıcı altında başlatacağımız önemli değil, aşağıdaki haklar ayarlanacağı için uzak OpenSSH Sunucu makinesine yalnızca bu kullanıcı altında giriş yapılması gerekecektir (bu tür haklar, özel anahtarın girilebilmesi için ayarlanmalıdır. tehlikeye atılmaz):

$ chmod 0700 ~/.ssh/ $ chmod 0600 ~/.ssh/id*

ssh-copy-id komutunu kullandığımız kullanıcı için public key'i client'tan server'a ~/.ssh/authorized_keys dosyasına aktaralım, eğer sunucunun dinlediği port standart değilse, siz -p anahtarını kullanarak kaydetmeniz ve tırnak içine almanız gerekir. Anahtar herkese açık olduğu için herhangi bir şekilde aktarılabilir.

ssh-copy-id "-p 8022 [e-posta korumalı]"

NameUserOnOpenSSHServer - bu, gelecekte uzak makinede oturum açacağımız kullanıcıdır.
Ardından, NameUserONOpenSSHServer kullanıcısının şifresini girmeniz gerekiyor ve başarılı bir yetkilendirmeden sonra bir ipucu göreceğiz:

Şimdi "ssh" ile makineye giriş yapmayı deneyin [e-posta korumalı]"" ve check-in: ~/.ssh/authorized_keys, beklemediğiniz ekstra anahtarları eklemediğimizden emin olmak için.

Host'a ssh ile giriş yapıyoruz ve dosyanın içeriğini kontrol ediyoruz (diğer anahtarlar bu dosyaya kaydedilebilir, bizimkileri arıyoruz.) NameUserONOpenSSHServer/.ssh/yetkili_anahtarlar:

sudo ssh" [e-posta korumalı]" sudo cat /home/NameUserONOpenSSHServer/.ssh/yetkili_anahtarlar

Dosyanın içeriğiyle eşleşmelidir. NameUserONOpenSSHClient/.ssh/id_rsa.pub

Sudo cat /home/NameUserONOpenSSHClient/.ssh/id_rsa.pub

sudo mcedit /etc/ssh/sshd_config

F7'ye basın, PubkeyAuthentication, RSAAuthentication, AuthorizedKeysFile'ı arayın
satırlar yorumlanmamalı / parametreler ayarlanmalıdır (kontrol edin):

# RSA anahtarlarının kullanımına izin ver RSAAuthentication evet # SSH1 kullanıyorsanız bu istenmez # anahtarları kullanarak yetkilendirmeye izin verin PubkeyAuthentication evet # Her kullanıcının kendi dizinindeki kendi dosyasını bağlayabileceği anahtarların bulunacağı yol. AuthorizedKeysFile %h/.ssh/yetkili_anahtarlar

SSH sunucusunu yeniden başlatın

sudo hizmeti ssh yeniden başlatma

/home/NameUserOnOpenSSHSServer/.ssh/authorized_keys dosyasının haklarını belirledik

Chmod 0600 ~/.ssh/yetkili_anahtarlar

OpenSSHServer konsolundan çıkıyoruz, bir sertifika kullanarak istemciden sunucuya giriş yapmaya çalışıyoruz, satıra giriyoruz ve şifre girmeden OpenSSHServer konsoluna girmeliyiz (anahtar oluştururken bir şifre girmediyseniz)

ssh [e-posta korumalı]

Veya kısaca SSH, geçiş halindeki verilerin güvenliğini sağlamak için en gelişmiş teknolojilerden biridir. Bu modu aynı yönlendiricide kullanmak, yalnızca iletilen bilgilerin gizliliğini sağlamanıza değil, aynı zamanda paket alışverişini hızlandırmanıza da olanak tanır. Doğru, herkes SSH'nin nasıl olduğunu ve tüm bunların neden gerekli olduğunu bilmiyor. Bu durumda yapıcı bir açıklama yapmak gerekir.

SSH bağlantı noktası: nedir ve neden gereklidir?

Güvenlikten bahsettiğimiz için bu durumda SSH portu, veri şifreleme sağlayan bir tünel şeklinde özel bir iletişim kanalı olarak anlaşılmalıdır.

Böyle bir tünel için en ilkel şema, kaynaktaki bilgileri şifrelemek ve uç noktada şifresini çözmek için varsayılan olarak açık bir SSH bağlantı noktasının kullanılmasıdır. Bunu şu şekilde açıklayabilirsiniz: Beğenseniz de beğenmeseniz de iletilen trafik, IPSec'in aksine, hem bir ağ terminalinin çıkışında hem de alıcı tarafın girişinde zorunlu olarak şifrelenir. Bu kanal üzerinden iletilen bilgilerin şifresini çözmek için alıcı terminal özel bir anahtar kullanır. Başka bir deyişle, hiç kimse şu anda bir anahtar olmadan iletime müdahale edemez veya iletilen verilerin bütünlüğünü ihlal edemez.

Herhangi bir yönlendiricide bir SSH bağlantı noktası açmak veya doğrudan SSH sunucusuyla etkileşime giren ek bir istemcinin uygun ayarlarını kullanmak, modern ağların tüm güvenlik özelliklerinden tam olarak yararlanmanıza olanak tanır. Buradaki nokta, varsayılan olarak atanan bağlantı noktasını veya kullanıcı ayarlarını kullanmaktır. Uygulamadaki bu parametreler oldukça karmaşık görünebilir, ancak böyle bir bağlantının organizasyonunu anlamadan kimse yapamaz.

Standart SSH Bağlantı Noktası

Gerçekten herhangi bir yönlendiricinin parametrelerinden yola çıkarsanız, öncelikle bu iletişim kanalını etkinleştirmek için ne tür bir yazılımın kullanılacağına karar vermeniz gerekir. Aslında, varsayılan SSH bağlantı noktası farklı ayarlara sahip olabilir. Her şey o anda hangi tekniğin kullanıldığına bağlıdır (sunucuya doğrudan bağlantı, ek bir istemci yükleme, bağlantı noktası yönlendirme vb.).

Bu nedenle, örneğin, Jabber bir istemci olarak kullanılıyorsa, varsayılan olarak 22 numaralı bağlantı noktası ayarlanmış olsa da, doğru bağlantı, şifreleme ve veri aktarımı için 443 numaralı bağlantı noktası kullanılmalıdır.

Yönlendiriciyi belirli bir program veya işlem için ön koşullarla yeniden yapılandırmak için SSH bağlantı noktası iletmeyi gerçekleştirmeniz gerekir. Geçerli iletişim protokolünün (IPv4 veya IPv6) hangi ayarlara sahip olduğuna bakılmaksızın, bir İnternet bağlantısı kullanan tek bir program için belirli bir erişim ataması vardır.

teknik gerekçe

Zaten açık olduğu gibi, standart SSH bağlantı noktası 22 her zaman kullanılmaz. Ancak burada konfigürasyonda kullanılan bazı özelliklerin ve parametrelerin vurgulanması gerekmektedir.

Şifreli veri aktarımının gizliliği neden SSH protokolünün özel olarak harici (misafir) kullanıcı bağlantı noktası olarak kullanılmasını gerektiriyor? Evet, yalnızca kullanılan tünelleme uzak kabuğu (SSH) kullanmanıza, uzaktan oturum açma (slogin) aracılığıyla terminal yönetimine erişmenize ve ayrıca uzaktan kopyalama prosedürlerini (scp) kullanmanıza izin verdiği için.

Ek olarak, SSH bağlantı noktası, kullanıcının en basit durumda, daha önce belirtildiği gibi, zorunlu veri şifrelemesi ile bilgilerin bir makineden diğerine aktarılması olan uzak X Windows komut dosyalarını yürütmesi gerektiğinde de kullanılabilir. Bu gibi durumlarda en gerekli olanı AES tabanlı algoritmaların kullanılması olacaktır. Bu, orijinal olarak SSH teknolojisinde sağlanan simetrik şifreleme algoritmasıdır. Ve sadece kullanmak mümkün değil, aynı zamanda gerekli.

Uygulama geçmişi

Teknolojinin kendisi uzun zamandır etrafta. Şimdilik SSH port yönlendirme nasıl yapılır sorusunu bir kenara bırakarak, tüm bunların nasıl çalıştığına odaklanalım.

Genellikle Socks tabanlı bir proxy veya VPN tüneli kullanmaya kadar kaynar. Bazı yazılım uygulamaları VPN ile çalışabiliyorsa, bu seçeneği tercih etmek daha iyidir. Gerçek şu ki, İnternet trafiğini kullanan şu anda bilinen hemen hemen tüm programlar VPN ile çalışabilir ve yönlendirmeyi ayarlamak zor değildir. Bu, proxy sunucularında olduğu gibi, ağa erişmekte olduğunuz terminalin harici adresini tanınmadan bırakmanıza izin verir. Yani, bir proxy durumunda, adres sürekli değişir, ancak VPN sürümünde, erişim yasağının geçerli olduğu bölgeden farklı olarak belirli bir bölgenin sabitlenmesiyle değişmeden kalır.

Teknolojinin kendisi, SSH portu açıldığında, 1995 yılında Finlandiya Teknoloji Üniversitesi'nde (SSH-1) geliştirildi. 1996 yılında, Sovyet sonrası alanda oldukça yaygın hale gelen SSH-2 protokolü şeklinde bir iyileştirme eklendi, ancak bunun için ve Batı Avrupa'nın bazı ülkelerinde olduğu gibi, bazen izin almak gerekiyor. ayrıca devlet kurumlarından böyle bir tünel kullanın.

Telnet veya rlogin'den farklı olarak bir SSH bağlantı noktası açmanın ana avantajı, bir RSA veya DSA dijital imzasının kullanılmasıdır (bir ortak ve özel anahtar biçiminde bir çift kullanarak). Ek olarak, bu durumda, çıkışta simetrik şifreleme kullanımını ima eden Diffie-Hellman algoritmasına dayanan sözde oturum anahtarını kullanabilir, ancak süreçte asimetrik şifreleme algoritmalarının kullanımını hariç tutmaz. veri iletimi ve bunların başka bir makine tarafından alınması.

Sunucular ve Kabuklar

Windows'ta veya içinde o kadar da zor değil. Tek soru, bunun için ne tür bir araç seti kullanılacağıdır.

Bu anlamda bilgi aktarımı ve doğrulama konusuna dikkat edilmelidir. İlk olarak, protokolün kendisinin, trafiğin en yaygın "dinlenmesi" olan sözde koklamadan yeterince korunduğu ortaya çıkıyor. SSH-1'in saldırılara karşı savunmasız olduğu ortaya çıktı. Bir "ortadaki adam" şeması şeklinde veri iletimi sürecine müdahale, sonuçlarını aldı. Bilgiler tamamen basit bir şekilde ele geçirilebilir ve şifresi çözülebilir. Ancak ikinci versiyon (SSH-2), oturum kaçırma adı verilen bu tür müdahalelere karşı sigortalıydı ve bu da onu en yaygın hale getirdi.

Güvenlik yasakları

İletilen ve alınan verilerle ilgili güvenliğe gelince, bu tür teknolojiler kullanılarak oluşturulan bir bağlantının organizasyonu aşağıdaki sorunları önler:

  • "döküm" parmak izi kullanıldığında, iletim aşamasında ana bilgisayara anahtarın belirlenmesi;
  • Windows ve UNIX benzeri sistemler için destek;
  • IP ve DNS adresi sızdırma (sızdırma);
  • veri iletim kanalına fiziksel erişim sırasında açık şifrelerin ele geçirilmesi.

Aslında, böyle bir sistemin tüm organizasyonu "istemci-sunucu" ilkesi üzerine kuruludur, yani her şeyden önce, kullanıcı makinesi, özel bir program veya eklenti aracılığıyla uygun yönlendirmeyi gerçekleştiren sunucuya erişir. .

tünel açma

Bu tür bir bağlantının yapılabilmesi için sisteme özel bir sürücünün yüklenmesi gerektiğini söylemeye gerek yok.

Tipik olarak, Windows sistemlerinde bu, yalnızca IPv4 ağlarında bir tür sanal IPv6 öykünme aracı olan kabuk yazılımına yerleşik Microsoft Teredo sürücüsüdür. varsayılan olarak etkindir. Bununla ilişkili arızalar olması durumunda, sistemi yeniden başlatabilir veya kabukta kapatma ve yeniden başlatma komutlarını verebilirsiniz. Devre dışı bırakmak için aşağıdaki satırlar kullanılır:

  • netsh;
  • arayüz teredo ayar durumu devre dışı;
  • interface isatap set durumu devre dışı bırakıldı.

Komutları girdikten sonra yeniden başlatma gerçekleşir. Bağdaştırıcıyı yeniden etkinleştirmek ve durumunu kontrol etmek için, devre dışı bırakılmak yerine etkin izin atanır ve ardından tüm sistem yeniden başlatılır.

SSH sunucusu

Şimdi "istemci-sunucu" şemasından başlayarak ana port olarak hangi SSH portunun kullanıldığını görelim. Genellikle varsayılan olarak 22 numaralı bağlantı noktası kullanılır, ancak yukarıda belirtildiği gibi 443 numaralı bağlantı noktası da kullanılabilir. Soru sadece sunucunun kendi tercihinde.

En yaygın SSH sunucuları aşağıdakiler olarak kabul edilir:

  • Windows için: Tectia SSH Sunucusu, Cygwin ile OpenSSH, MobaSSH, KpyM Telnet/SSH Sunucusu, WinSSHD, copssh, freeSSHd;
  • FreeBSD için: OpenSSH;
  • Linux için: Tectia SSH Sunucusu, ssh, openssh-server, lsh-server, dropbear.

Listelenen tüm sunucular ücretsizdir. Bununla birlikte, işletmelerde ağ erişimini düzenlemek ve bilgileri korumak için gerekli olan artan güvenlik düzeyi ile ayırt edilen ücretli hizmetleri de bulabilirsiniz. Bu tür hizmetlerin maliyeti şu anda tartışılmamaktadır. Ancak genel olarak, özel bir yazılım veya "demir" güvenlik duvarı kurmakla karşılaştırıldığında bile nispeten ucuz olduğunu söyleyebiliriz.

SSH istemcisi

SSH bağlantı noktasının değiştirilmesi, istemci programına veya yönlendiricideki bağlantı noktaları iletilirken ilgili ayarlara göre yapılabilir.

Ancak, istemci kabukları söz konusu olduğunda, farklı sistemler için aşağıdaki yazılım ürünleri kullanılabilir:

  • Windows - SecureCRT, PuTTY\KiTTY, Axessh, ShellGuard, SSHWindows, ZOC, XShell, ProSSHD, vb.;
  • Mac OS X: iTerm2, vSSH, NiftyTelnet SSH;
  • Linux ve BSD: lsh-client, kdessh, openssh-client, Vinagre, macun.

Ortak Anahtar Kimlik Doğrulaması ve Bağlantı Noktası Değişikliği

Şimdi sunucunun nasıl doğrulandığı ve yapılandırıldığı hakkında birkaç söz. En basit durumda, bir yapılandırma dosyası (sshd_config) kullanmanız gerekir. Ancak, örneğin PuTTY gibi programların kullanılması durumunda onsuz yapabilirsiniz. SSH bağlantı noktasını standart değerden (22) herhangi birine değiştirmek oldukça basittir.

Ana şey, açılan port sayısının 65535 değerini geçmemesidir (doğada sadece daha yüksek liman yoktur). Ayrıca, MySQL veya FTPD veritabanları gibi istemciler tarafından kullanılabilecek bazı varsayılan açık bağlantı noktaları vardır. SSH için yapılandırmalarını belirtirseniz, elbette çalışmayı durdururlar.

Aynı Jabber istemcisinin, örneğin bir sanal makinede bir SSH sunucusu kullanarak aynı ortamda çalışıyor olması gerektiğini düşünmekte fayda var. Ve localhost sunucusunun kendisine 4430 değeri atanması gerekecektir (yukarıda belirtildiği gibi 443 değil). Bu yapılandırma, jabber.example.com ana dosyasına erişim bir güvenlik duvarı tarafından engellendiğinde kullanılabilir.

Öte yandan, dışlama kurallarının oluşturulmasıyla, bunun için arayüzünün ayarları kullanılarak bağlantı noktaları yönlendiricinin kendisinde de iletilebilir. Çoğu modelde 192.168 ile başlayan adreslerin 0.1 veya 1.1 eklenmesi ile girilerek giriş yapılır, ancak Mikrotik gibi ADSL modemlerin özelliklerini birleştiren yönlendiricilerde son adres 88.1'in kullanıldığını varsayar.

Bu durumda, yeni bir kural oluşturulur, ardından örneğin harici bir dst-nat bağlantısı kurmak için gerekli parametreler ayarlanır ve bağlantı noktaları genel ayarlar bölümünde değil, Eylem tercihleri ​​bölümünde manuel olarak kaydedilir. Burada özellikle karmaşık bir şey yok. Ana şey, gerekli ayarları belirlemek ve doğru bağlantı noktasını ayarlamaktır. Varsayılan olarak, 22 numaralı bağlantı noktası kullanılabilir, ancak özel bir istemci kullanılıyorsa (farklı sistemler için yukarıdakilerden biri), değer isteğe bağlı olarak değiştirilebilir, ancak yalnızca bu parametrenin, yukarıda belirtilen beyan edilen değeri aşmaması için. sadece port numarası yok.

Bağlantı kurarken, istemci programının parametrelerine de dikkat etmelisiniz. Varsayılan değer genellikle 768 olmasına rağmen, ayarlarında minimum bir anahtar uzunluğu (512) belirtmeniz gerekebilir. Oturum açma zaman aşımını 600 saniyeye ayarlamak ve kök haklarını kullanarak uzaktan erişime izin vermek de istenir. Bu ayarları uyguladıktan sonra, .rhost kullanımına dayalı olanlar dışında tüm kimlik doğrulama haklarını kullanmak için de izin vermelisiniz (ancak buna yalnızca sistem yöneticileri ihtiyaç duyar).

Diğer şeylerin yanı sıra, sistemde kayıtlı kullanıcı adı şu anda girilen ile eşleşmiyorsa, bunun için user ssh master komutunu kullanarak, ek parametreler girerek (neyin tehlikede olduğunu anlayanlar için) açıkça belirtmeniz gerekecektir.

~/.ssh/id_dsa (veya rsa) komutu, anahtarı ve şifreleme yönteminin kendisini dönüştürmek için kullanılabilir. Bir ortak anahtar oluşturmak için ~/.ssh/identity.pub satırı kullanılarak bir dönüşüm kullanılır (ancak bu gerekli değildir). Ancak, uygulamanın gösterdiği gibi, en kolay yol ssh-keygen gibi komutları kullanmaktır. Burada sorunun özü, yalnızca mevcut yetkilendirme araçlarına (~/.ssh/yetkili_anahtarlar) bir anahtar eklemeye indirgenmiştir.

Ama çok ileri gittik. SSH portunu ayarlama konusuna dönecek olursak, zaten açık olduğu gibi, SSH portunu değiştirmek o kadar da zor değil. Doğru, bazı durumlarda, dedikleri gibi, terlemeniz gerekecek, çünkü ana parametrelerin tüm değerlerini hesaba katmanız gerekecek. Aksi takdirde, yapılandırma sorunu, ya sunucuya ya da istemci programına (başlangıçta sağlanmışsa) girmek ya da yönlendiricide bağlantı noktası yönlendirmeyi kullanmaktan kaynaklanır. Ancak, varsayılan olarak ayarlanan 22 numaralı bağlantı noktasını aynı 443. bağlantı noktasıyla değiştirseniz bile, böyle bir şemanın her zaman çalışmadığını, ancak yalnızca aynı Jabber eklentisini (diğer analoglar) kurmanız durumunda açıkça anlamanız gerekir. standarttan farklı olarak ilgili bağlantı noktalarını kullanabilir). Ayrıca, SSH sunucusuyla doğrudan etkileşime girecek olan SSH istemcisinin parametrelerinin ayarlanmasına, eğer gerçekten mevcut bağlantının kullanılması amaçlanıyorsa, özel dikkat gösterilmelidir.

Aksi takdirde, başlangıçta sağlanmadıysa (bu tür eylemlerin yapılması istense de), SSH protokolü aracılığıyla erişim için ayarlar ve parametreler değiştirilemez. Burada, genel olarak, bir bağlantı oluştururken ve bunun daha fazla kullanımında özel bir sorun yoktur (elbette, sunucu ve istemciye dayalı manuel yapılandırma kullanılmadıkça). Yönlendiricide bir dışlama kuralının en yaygın olarak oluşturulması, tüm sorunları çözmenize veya bunlardan kaçınmanıza olanak tanır.

Bu yazıda, Infobox ve buluttan VPS ile SSH üzerinden bir sunucuyla çalışmanın modern ve kullanışlı yollarına bakacağız.

Size yalnızca olağan bağlantı yöntemi hakkında değil, aynı zamanda kararsız bir İnternet (örneğin, 3G modemler) aracılığıyla kararlı bir bağlantı düzenlemenin yanı sıra SSH ile çalışmanıza yardımcı olan ek yardımcı programları da anlatacağız.

Windows kullanıcısıysanız ve bir Linux sunucusuna hızlı ve kolay bir şekilde bağlanmanız gerekiyorsa, "Putty veya Windows'tan SSH'ye nasıl hızlı bağlanılır" bölümüne gidin.

SSH ile bağlanmak için bilmeniz gerekenler

Bağlanmak için ihtiyacınız olan:
  • sunucu IP adresi
  • giriş yapmak
  • şifre
Bilgi kutusundan VPS NG sunucusuna bağlanmak için veri nereden alınır
Hizmeti sipariş ettikten sonra kontrol paneline https://panel.infobox.ru girin.
Açılır listeden kontrol panelinin sağ üst köşesindeki "VPS NG" hizmetini seçin.
Ardından "VPS" sekmesine gidin.

Bu bölümde göreceksiniz sunucu IP adresi ve yükleyebilirsiniz sunucuya erişmek için şifre.


Bağlanmak için kullanıcı adınızı kullanın kök, IP adresi bu sayfadan ve yüklü şifre.
Parolanızı unuttuysanız, yukarıdaki ekran görüntüsünde gösterilen "Erişim ayarlarını düzenle" öğesini tıklayın.

Bilgi kutusundan VPS sunucusuna bağlanmak için veri nereden alınır
Kontrol panelinde oturum açın https://panel.infobox.ru.
Açılır listeden kontrol panelinin sağ üst köşesindeki VPS hizmetini seçin (hizmetin adı, sipariş edilen işletim sisteminin adını ve konum bölgesini içerir).

Ardından "VPS'yi Yönet" sekmesine gidin.


Kullanıcı adını kullan kök, bu sayfadan sunucunun şifresi ve ip adresi.

InfoboxCloud sunucusuna bağlanmak için veri nereden alınır
Sunucu oluşturulduktan sonra bağlantı verileri size e-posta ile gönderilecektir. Bu bağlanmak için yeterlidir.

Erişim e-postanızı kaybettiyseniz ve sunucuya erişmek istiyorsanız
Varsayılan sunucu yöneticisi oturum açma: kök

Kontrol panelinde oturum açın: https://panel.infobox.ru .
Açılır listeden kontrol panelinin sağ üst köşesindeki "Bulut Sunucuları" hizmetini seçin.

Sunucu için ayrılmış IP adresi, kontrol panelinin "Bulut Altyapısı" sekmesinde görüntülenebilir.

Eğer alan " Özel IP adresi" boş, sunucuyu oluşturduğunuzda, sunucuya en az 1 adet tahsis edilmiş ip adresi eklemediğiniz anlamına gelir (ve bu nedenle sunucuya İnternet üzerinden erişim yoktur, sadece yerel ağdan).

Özel bir IP adresi eklemek için sunucu adına tıklayın.

Ağ ayarları grubunda Yapılandır'a tıklayın.


Ağın bant genişliğinin (hızının) yeterli olduğundan emin olun (veya gerekirse daha fazlasını koyun).
Ardından IPv4 Adresi Ekle'yi ve Değişiklikleri Kaydet'i tıklayın.


Sunucunun artık özel bir IP adresi vardır.


Sunucuya erişim şifresini değiştirmek için yukarıdaki ekran görüntüsünde gösterildiği gibi "Değiştir"e tıklayın. Bu şekilde sunucuya erişmek için bir şifre belirleyebilirsiniz.
Şimdi biliyorsun sunucu IP adresi, giriş yapmak ( kök) ve şifre.

SSH istemcilerini ayarlama

Pencereler için
Sunucuya bağlanmak için bir SSH istemcisine ihtiyacınız olacak. Hızlı bir şekilde bağlanmanız gerekiyorsa, Putty önerilir. scp, rsync ve ssh-copy-id gibi unix yardımcı programları ile çalışmanız gerekiyorsa Cygwin kullanın.
Macun veya Windows'tan SSH'ye nasıl hızlı bir şekilde bağlanılır
Windows için Putty yükleyicisini En son sürüm sürümü bölümünden indirin ve Putty'yi varsayılan ayarlarla yükleyin.


Putty'yi başlatın (Başlat -> Tüm Uygulamalar -> PuTTY -> PuTTY).

Sunucunun IP adresini girin. 22 numaralı bağlantı noktasının seçildiğinden ve bağlantı türünün SSH olduğundan emin olun ve "Aç" ı tıklayın.


Bağlandığınız sunucuya güvenip güvenmediğiniz sorulacak. "Evet" cevabını vermeniz gerekiyor.


Bağlantı penceresi açılacaktır. Giriş olarak root ve şifre olarak sunucu şifrenizi kullanın. Parola, farenin sağ tuşu ile panodan yapıştırılabilir. Güvenlik amacıyla yazıp yapıştırdığınızda görüntülenmez.


Bağlantı başarıyla kuruldu.

Windows bilgisayarınızdaki Cygwin veya Unix ortamı
Linux sunucuları ile çalışırken bilgisayarınızda da benzer bir ortama ihtiyaç duyabilirsiniz. Sunucuda ve çalışan bilgisayarda tek bir yardımcı program seti kullanmak çok uygundur, bu nedenle Cygwin'i denediğinizden emin olun. Linux sadece ilk bakışta karmaşık görünüyor. Yavaş yavaş bu işletim sisteminde ustalaşarak, Cygwin'e giderek daha fazla ihtiyacınız olacak. İyi sıkılaştırır.

SSH üzerinden bağlanırken kararsız İnternet bağlantısı - ne yapmalı?

Genellikle, kararsız bir ağ üzerinden çalışırken (örneğin, 3G / 4G mobil İnternet veya çeşitli WiFi erişim noktaları aracılığıyla), SSH ile bağlantı kopar. Yeniden bağlanma ihtiyacını önlemek için istemci düzeyinde neler yapılabileceğini görelim. Bu araçlar, sunucu üzerinde kritik işlemleri gerçekleştirmek (örneğin, işletim sistemini yükseltmek) için uygun değildir. Kritik işlemleri gerçekleştirmek için ayrıca makalenin sonraki bölümünde açıklanan yardımcı programları kullanmalısınız. Bu bölümdeki yardımcı programların amacı, SSH'nin kullanıcı için daha kolay çalışmasını sağlamaktır.
Otomatik SSH
AutoSSH, ssh istemcisinin bir kopyasını başlatır ve gerekirse ssh istemcisini yeniden başlatarak bağlantıyı izler.

Autossh, bir ssh yönlendirme döngüsü oluşturmak için ssh kullanır (yerel makineden uzak makineye bağlantı ve tam tersi) ve test verilerini ileterek geri dönmesini bekler. Ayrıca, test verilerini geri göndermek için bir uzak yankı hizmetinin kullanılmasını da destekler.

AutoSSH yalnızca 3 seçeneği destekler:

  • -M<порт>[: yankı bağlantı noktası]- bir izleme bağlantı noktası veya bir izleme bağlantı noktası ve bir yankı hizmeti bağlantı noktası belirtmek için kullanılır. Bir yankı hizmeti bağlantı noktası belirtilmemişse, bunun için bir sonraki bağlantı noktası numarası kullanılır. Örneğin, -M 20000 bayrağı ayarlanırsa, test verileri 20000 numaralı bağlantı noktasında gönderilir ve 20001 numaralı bağlantı noktasında alınır. -M 0 belirtirseniz, bağlantı izleme devre dışı bırakılır ve autossh yalnızca ssh'den çıktığınızda ssh'yi yeniden başlatır (sizin sizin durumunuzda izleme kullanılamıyorsa bunu OpenSSH'de ServerAliveInterval seçenekleri ve ServerAliveCountMax ile kullanabilirsiniz);
  • -f- ssh'yi başlatmadan önce arka plana autossh gönderir (bu modda şifre giremezsiniz);
  • -V- autossh sürümünü görüntüler.
Diğer tüm argümanlar ssh seçenekleri olarak iletilir.

Bağlantı yeniden kurulduğunda parolayı yeniden girmek zorunda kalmamak için, bu kullanıcının yukarıdaki bölümde gösterildiği gibi bir anahtar kullanarak sunucuya girmesine izin verin.

Windows'ta Cygwin'de AutoSSH Kurulumu
Windows'ta Cygwin'i kullanırken şunu yazın:
apt-cyg güncellemesi
apt-cyg autossh yükleyin


Artık sunucuya bağlanabilirsiniz:
autossh -M 20000 [e-posta korumalı] _sunucu adresi


Bağlantı başarıyla kuruldu.

Genel olarak autossh, kararsız İnternet bağlantıları üzerinden çalışmak ve sunucuda ssh tünelleri düzenlemek için oldukça uygun bir araçtır (bu senaryoyu ayrı bir makalede ele alacağız). Autossh'un dezavantajı, komutları girerken ağda önemli gecikmeler olması durumunda (3G ağda gerçekleşir) bu yardımcı programın sorunu çözmemesidir. Bu durumda, her karaktere girmek için sunucudan bir yanıt bekleyeceksiniz, bu da işi biraz yavaşlatıyor. Ancak, normal şartlar altında autossh, bir ssh bağlantısını sürdürmede çok yardımcı olur.

Sunucudan yanıt beklemeden komut girebilme özelliği Mosh tarafından çözülmüştür, ancak bu yardımcı programın uyumluluğu hala çok sınırlıdır ve güvenilirliği yüksek değildir, bu nedenle henüz kullanılması önerilmez.

Görev açısından kritik ve zaman alıcı sunucu işlemleri nasıl yapılır: terminal çoklayıcılar

İşletim sistemini güncelliyorsanız, bazı yazılımlar yüklüyorsanız veya yalnızca sunucuda bir dosyayı düzenliyorsanız, ssh veya autossh aracılığıyla bağlandıktan sonra doğrudan çalışmayın. SSH bağlantısı kesilirse, SSH üzerinden bağlanırken başlatılan oturumu kaybedersiniz. Bunun olmasını önlemek için ve SSH ile yeniden bağlandığınızda, kesinlikle sunucuda devam eden bir işleme veya aynı andan itibaren açık bir dosya düzenleme penceresine girdiniz, sunucudaki terminal çoklayıcıları kullanın: GNU Screen veya tmux .
GNU Ekranı
Screen programı başlangıçta tek bir terminalde birden çok terminal oturumu çalıştırmak için tasarlandı. Bununla birlikte, ekranın başka bir yararlı özelliği de vardır: sanal oturumları fiziksel bir terminalden ayırma ve diğerine ekleme yeteneği. Bu, özellikle, uzak makinelerde sürekli olarak oturum açmak zorunda kalmadan uzun süren işlemleri çalıştırmanıza olanak tanır.

1. Uzak sunucuda SSH ile oturum açın.
2. Ekranı orada çalıştırın
3. Bir karşılama mesajı göreceksiniz, Enter'a basın.
4. Artık SSH üzerinden sunucuya yeni bağlanmış gibi her şeyi yapabilirsiniz (örneğin, herhangi bir uzun işlemi başlatın).
5. CTRL + a ve ardından d tuşlarına basarak bir oturumun bağlantısını kesebilirsiniz. Hatta sunucuyla SSH bağlantısını sonlandırabilirsiniz.
6. Oturuma geri dönmek için SSH ile yeniden bağlanın (veya autossh bunu yapacaktır) ve screen -r yazın
Çalışan oturuma geri döneceksiniz ve daha önce başlattığınız süreç içinde devam ediyor. Terminal çoklayıcıları sonraki makalelerde daha ayrıntılı olarak tartışacağız.

Çözüm

Bu yazıda, çeşitli işletim sistemlerinden SSH üzerinden rahat çalışma için gerekli temel bilgileri ele almaya çalıştık. Tabii ki, tüm bunlar mümkün değil, ancak başlamak için iyi bir temel. Makalede bir hata bulursanız, önemli bir şeyin eklenmesi gerektiğini düşünün veya sadece bir sorunuz var -

özet: Bu makale, sistem yöneticileri ve kabuktan korkmayan programcılar için hayatı çok daha kolay hale getiren gelişmiş OpenSSH özelliklerini açıklamaktadır. Anahtarlar ve -L/D/R seçeneklerinden başka bir şey tarif etmeyen çoğu kılavuzdan farklı olarak, ssh'ın beraberinde getirdiği tüm ilginç özellikleri ve kolaylıkları toplamaya çalıştım.

uyarı: gönderi çok hacimli, ancak kullanım kolaylığı için parçalara ayırmamaya karar verdim.

İçindekiler:

  • anahtar yönetimi
  • ssh ile dosya kopyalama
  • G/Ç akışlarını iletme
  • Uzak FS'yi ssh aracılığıyla monte etme
  • Uzaktan kod yürütme
  • .ssh/config içindeki bağlantılar için takma adlar ve seçenekler
  • Varsayılan Seçenekler
  • X sunucu yönlendirme
  • çorap proxy'si olarak ssh
  • Bağlantı noktası yönlendirme - ileri ve geri
  • Ters Sox Proxy'si
  • L2/L3 trafiğini tünelleme
  • Yetkilendirme aracısı yönlendirme
  • Güvenilmeyen bir sunucu aracılığıyla ssh üzerinden ssh tünelleme ( büyük ihtimalle bilmiyorsun)

Anahtar yönetimi

Birkaç kelimeyle teori: ssh bir şifre ile değil, bir anahtar ile giriş yapabilir. Anahtar, açık ve kapalı bir kısımdan oluşur. Açık bir tanesi sunucuya "kimin" eriştiği kullanıcının ana dizinine, kapalı bir tanesi ise uzak sunucuya giden kullanıcının ana dizinine yerleştirilir. Yarımlar karşılaştırılır (abartıyorum) ve her şey yolundaysa izin verilir. Önemli: Sunucuda yalnızca istemciye değil, aynı zamanda istemciye göre sunucuya da yetki verilir (yani sunucunun kendi anahtarı vardır). Anahtarın parolaya kıyasla ana özelliği, sunucuyu hackleyerek "çalınamaması" - anahtar istemciden sunucuya aktarılmaz ve yetkilendirme sırasında istemci sunucuya anahtarın sahibi olduğunu kanıtlar ( aynı kriptografik büyü).

Anahtar oluşturma

ssh-keygen komutunu kullanarak kendi anahtarınızı oluşturabilirsiniz. Parametreleri ayarlamazsanız, her şeyi olması gerektiği gibi kaydeder.

Anahtar bir şifre ile kilitlenebilir. Bu şifre (normal grafik arayüzlerde) bir kez sorulur ve bir süre saklanır. Şifre boş ise kullanım sırasında sorulmayacaktır. Unutulan bir şifreyi kurtarmak imkansızdır.

Komutu kullanarak bir anahtarın şifresini değiştirebilirsiniz. ssh-keygen -p.

Anahtar Yapısı

(konumla ilgili soru varsayılan olarak yanıtlandıysa).
~/.ssh/id_rsa.pub- Genel anahtar. Erişmeniz gereken sunuculara kopyalanır.
~/.ssh/id_rsa- Özel anahtar. Kimseye gösteremezsin. Pub yerine bir mektuba/sohbete kopyalayıp yapıştırırsanız, yeni bir anahtar oluşturmanız gerekir. (Şaka yapmıyorum, id_rsa sonrası bir ssh anahtarı istediğiniz kişilerin yaklaşık %10'u ve bu %10'unun %100'ü erkektir).

Anahtarın sunucuya kopyalanması

Bir dosya oluşturursanız, oturum açmak istediğiniz kullanıcının dizininde ~/.ssh/yetkili_anahtarlar ve genel anahtarı oraya koyun, ardından şifre olmadan girebilirsiniz. Lütfen dosya izinlerinin yetkisiz kullanıcıların bu dosyaya yazmasına izin vermemesi gerektiğini unutmayın, aksi takdirde ssh bunu kabul etmeyecektir. Anahtarda, son alan - [e-posta korumalı] Yetkilendirme ile ilgisi yoktur ve yalnızca kimin anahtarının nerede olduğunu belirleme kolaylığına hizmet eder. Bu alanın, anahtar yapıyı ihlal etmeden değiştirilebileceğini (hatta kaldırılabileceğini) unutmayın.

Kullanıcının şifresini biliyorsanız, işlem basitleştirilebilir. Takım ssh-kopya-kimliği [e-posta korumalı] dosyaları manuel olarak düzenlemeden anahtarı kopyalamanıza olanak tanır.

Not: Eski ssh kılavuzları, yetkili_anahtarlar2'den bahseder. Sebep: ssh'ın ilk versiyonu vardı, sonra ikinci (güncel) oldu, bunun için kendi config setlerini yaptılar, herkesi çok yordu ve ikinci versiyon uzun süre "2" olmayan versiyonlara geçti. evvel. Yani, her zaman yetkili_anahtarlar ve farklı sürümleri düşünmeyin.

Standart olmayan bir bağlantı noktasında ssh yaparsanız, ssh-copy-id'nin çalışması için özel bir numara gerekir: ssh-copy-id "-p 443 [e-posta korumalı]"(Alıntılara dikkat edin).

Sunucu Anahtarı

Bir sunucuya ilk kez giriş yaptığınızda, ssh size anahtara güvenip güvenmediğinizi sorar. Hayır cevabını verirseniz, bağlantı kapatılır. Evet ise, anahtar bir dosyaya kaydedilir ~/.ssh/bilinen_hostlar. Hangi anahtarın nerede olduğunu bulmak imkansızdır (çünkü güvenli değildir).

Sunucunun anahtarı değiştiyse (örneğin, sunucu yeniden kurulduysa), ssh sahte bir anahtara bağırır. Lütfen, sunucuya dokunulmadıysa ve ssh bağırırsa, yanlış sunucuya girdiğinizi unutmayın (örneğin, ağda aynı IP'ye sahip başka bir bilgisayar belirdi, özellikle 192.168.1.1'e sahip tüm yerel ağlar bundan muzdariptir, hangi dünyada birkaç milyon vardır). "Orta saldırıdaki kötü adam" senaryosu olası değildir, daha sık olarak sadece IP ile ilgili bir hatadır, ancak "her şey yolundaysa" ve anahtar değişmişse, bu bir çift tarafından paranoya seviyesini yükseltmek için bir nedendir. seviyeleri (ve anahtarla yetkiniz varsa ve sunucu aniden bir şifre isterse - o zaman paranoya %100 açılabilir ve şifre girilmez).

Bilinen bir sunucu anahtarını komutuyla silebilirsiniz. ssh-keygen -R sunucusu. Bu durumda, IP anahtarını da silmeniz gerekir (ayrı olarak depolanırlar): ssh-keygen -R 127.0.0.1.

Sunucu anahtarı şurada saklanır: /etc/ssh/ssh_host_rsa_key ve /etc/ssh/ssh_host_rsa_key.pub. Onlar yapabilir:
a) eski sunucudan yenisine kopyalayın.
b) ssh-keygen ile üretin. Bu durumda bir parola belirlemeniz gerekmez (yani boş). ssh sunucusu, anahtarı parola ile kullanamaz.

Sunucuları klonlarsanız (örneğin sanal makinelerde), sunucu ssh anahtarlarının yeniden oluşturulması gerektiğini unutmayın.

Aynı zamanda, know_host'lardan eski anahtarları kaldırmak daha iyidir, aksi takdirde ssh yinelenen anahtara küfreder.

Dosyalar kopyalanıyor

Dosyaları sunucuya aktarmak bazen yorucu olabiliyor. sftp ve diğer garip şeylerle uğraşmanın yanı sıra, ssh bize şu komutu verir: scp, dosyayı bir ssh oturumu aracılığıyla kopyalar.

scp yolu/dosyam [e-posta korumalı]:/tam/yol/hedef/yeni/konum/

Ayrıca geri dönebilirsiniz:
scp [e-posta korumalı]:/full/path/to/file /path/to/put/buraya

Balık uyarısı: mc'nin ssh üzerinden bağlanabilmesine rağmen, büyük dosyaları kopyalamak çok acı verici olacaktır çünkü. balık (sanal bir fs olarak ssh ile uğraşmak için mc modülü) çok yavaştır. 100-200kb sınırdır, sonra sabır testi başlar. (Çok erken gençliğimi hatırladım, scp hakkında bilgim yokken ~ 5Gb'yi balık yoluyla mc'ye kopyaladım, FastEthernet'te 12 saatten biraz fazla sürdü).

Kopyalama yeteneği harika. Ama "farklı kaydet" - ve hemen sunucuya istiyorum. Ve grafik modunda özel bir programdan değil, tanıdık bir programdan kopyalamak için.

Bu da mümkündür:

sshf'ler

Teori: Sigorta modülü, dosya sistemi isteklerini çekirdekten kullanıcı alanına uygun programa "dışa aktarmanıza" izin verir. Bu, "sözde dosya sistemlerini" uygulamayı kolaylaştırır. Örneğin, tüm yerel uygulamaların (birkaç istisna dışında) hiçbir şeyden şüphelenmemesi için ssh aracılığıyla uzak bir dosya sistemine erişim sağlayabiliriz.

Aslında, istisna: O_DIRECT desteklenmiyor, ne yazık ki (bu bir sshfs sorunu değil, genel olarak bir sigorta sorunu).

Kullanım: sshfs paketini kurun (sigortayı beraberinde sürükleyecektir).

Aslında, desunote.ru'yu (ev bilgisayarımda bulunur - resimler bu makalede gösterilmektedir) dizüstü bilgisayarıma bağlayan komut dosyamın bir örneği:

#!/bin/bash sshfs desunote.ru:/var/www/desunote.ru/ /media/desunote.ru -o yeniden bağlan

Bir +x dosyası oluşturuyoruz, diyoruz, herhangi bir uygulamaya gidiyoruz, kaydet deyin ve görün:

önemli olabilecek sshfs seçenekleri: -o reconnect (başarısız olmak yerine yeniden bağlanmayı denemenizi söyler).

Kökten gelen verilerle çok çalışıyorsanız, bir idmap yapabilirsiniz (yapmalısınız):

-o idmap=kullanıcı. Şu şekilde çalışır: kullanıcı olarak bağlanırsak [e-posta korumalı], ancak local olarak vasiliy kullanıcısı olarak çalışıyoruz, sonra "pupkin dosyalarının vasiliy dosyaları olduğunu varsayın" diyoruz. peki ya da root olarak bağlanırsak “root”.

Benim durumumda, kullanıcı adları (yerel ve uzak) aynı olduğu için idmap gerekli değildir.

Sadece bir ssh anahtarımız varsa rahat çalıştığını unutmayın (makalenin başına bakın), değilse, şifre ile yetkilendirme 2-3 bağlantı için beni kızdırıyor.

komutu ile kapatabilirsiniz. kaynaştırıcı -u /yol, ancak, bağlantı takılırsa (örneğin, ağ yoksa), o zaman bunu root olarak yapabilirsiniz/yapmalısınız: sudo umount -f /path.

Uzaktan kod yürütme

ssh, uzak bir sunucuda bir komut yürütebilir ve bağlantıyı hemen kapatabilir. En basit örnek:

ssh [e-posta korumalı] ls /vb/

Yerel bir komut satırımız olacakken /etc/ içeriğini sunucuda gösterecek.

Bazı uygulamalar bir kontrol terminaline sahip olmak ister. -t seçeneğiyle çalıştırılmalıdırlar:
ssh [e-posta korumalı]-t kaldır_komutu

Bu arada, şöyle bir şey yapabiliriz:
ssh [e-posta korumalı] cat /some/file|awk "(2$ yazdır)" |local_app

Bu bizi aşağıdaki özelliğe götürür:

stdin/out yönlendirme

Diyelim ki programa uzaktan bir istekte bulunmak ve çıktısını yerel bir dosyaya koymak istiyoruz.

ssh [e-posta korumalı] komut> dosyam

Diyelim ki yerel bir çıktıyı uzaktan koymak istiyoruz

komutum|scp- [e-posta korumalı]:/yol/uzak_dosya

Örneği karmaşıklaştıralım - sunucudan sunucuya dosya aktarabiliriz: stdin'i 10.1.1.2'ye koymak için bir zincir yapıyoruz, bu bizim için dışarıdan mevcut değil:

benim komutum | ssh [e-posta korumalı] scp [e-posta korumalı]:/yol/to/dosya"

Ayrıca "a" borusunu kullanmak için çok şaşırtıcı bir numara var (lütfen LiveJournal'daki yorumlarda önerilir):

Tar -c * | ssh [e-posta korumalı]"cd && tar -x"

Tar, dosyaları yerel olarak maske ile paketler, stdout'a yazar, buradan ssh onları okur, uzak bir sunucudaki stdin'e aktarır, burada cd onları yok sayar (stdin'i okumaz) ve tar okur ve paketi açar. Yani tabiri caizse, scp fakirler içindir.

takma adlar

Dürüst olmak gerekirse, yakın zamana kadar bilmiyordum ve kullanmadım. Çok rahat oldukları ortaya çıktı.

Aşağı yukarı büyük bir şirkette, sunucu adlarının genellikle şöyle göründüğü ortaya çıkar: spb-MX-i3.extrt.int.company.net. Ve oradaki kullanıcı yerele eşit değil. Yani şu şekilde giriş yapmanız gerekiyor: ssh [e-posta korumalı] Her yazdırdığınızda - yeterince tünel sendromu alamayacaksınız. Küçük şirketlerde sorun tersine çevrilir - kimse DNS hakkında düşünmez ve sunucuya erişim şöyle görünür: ssh [e-posta korumalı] Kısacası, ama yine de sinir bozucu. Standart olmayan bir bağlantı noktamız varsa ve örneğin ssh'nin ilk sürümü (ciscos'a merhaba) varsa daha da fazla drama. O zaman her şey şöyle görünür: ssh -1 -p 334 [e-posta korumalı] Kendini boğ. Scp ile drama hakkında konuşmak bile istemiyorum.

IP'ye (/etc/hosts) sistem çapında takma adlar yazabilirsiniz, ancak bu çarpık bir çıkış yoludur (ve yine de kullanıcıyı ve seçenekleri yazdırmanız gerekir). Daha kısa bir yol var.

Dosya ~/.ssh/config sunuculara özel olanlar da dahil olmak üzere bağlantı parametrelerini ayarlamanıza olanak tanır ve en önemlisi, her sunucunun kendine ait vardır. İşte örnek bir yapılandırma:

Ana bilgisayar ric Ana Bilgisayar Adı oooh-horns-and-hooves.rf Kullanıcı Yöneticisi ForwardX11 evet Sıkıştırma evet Ana bilgisayar ana bilgisayarı Ana bilgisayar adı myhome.dyndns.org Kullanıcı vasya PasswordAuthentication hayır

Mevcut tüm seçenekler şurada görülebilir: adam ssh_config(sshd_config ile karıştırılmamalıdır).

Varsayılan Seçenekler

UUSER isteminde: Host * yapısını kullanarak varsayılan bağlantı ayarlarını belirleyebilirsiniz, örneğin:

Ana Bilgisayar * Kullanıcı kökü Sıkıştırma evet

Aynısı /etc/ssh/ssh_config içinde de yapılabilir (/etc/ssh/ssh ile karıştırılmamalıdır) d _config), ancak bu kök izinleri gerektirir ve tüm kullanıcılar için geçerlidir.

X sunucu yönlendirme

Aslında yukarıdaki yapılandırma örneğinde bu kısmı biraz bozdum. ForwardX11 sadece budur.

Teori: Unix grafik uygulamaları genellikle bir X sunucusu kullanır (wayland yolda, ancak hala hazır değil). Bu, uygulamanın başlatıldığı ve çizim yapmak için X sunucusuna bağlandığı anlamına gelir. Başka bir deyişle, gui'siz çıplak bir sunucunuz varsa ve yerel bir x-server'ınız (çalıştığınız yer) varsa, sunucudaki uygulamaların masaüstünüzde çizim yapmasına izin verebilirsiniz. Genellikle uzak bir X sunucusuna bağlanmak yapılacak en güvenli ve önemsiz şey değildir. SSH, bu süreci basitleştirmenize ve tamamen güvenli hale getirmenize olanak tanır. Ve trafiği toplama yeteneği aynı zamanda daha az trafikle idare etmenizi sağlar (yani kanal kullanımını azaltın, yani ping'i azaltın (daha doğrusu gecikme), yani gecikmeleri azaltın).

Tuşlar: -X - X-sunucu iletme. -Y yetkilendirme iletme.

Sadece ssh -XYC kombinasyonunu hatırlayın [e-posta korumalı]
Yukarıdaki örnekte (şirket isimleri hayal ürünüdür), ooo-horns-and-hooves.rf sunucusuna bir nedenden dolayı, ancak Windows sunucusuna erişmek için bağlanıyorum. Hepimiz bir ağ üzerinde çalışırken microsoft'un güvenliğini biliyoruz, bu nedenle çıplak RDP'yi dışarıya maruz bırakmak rahatsız edici. Bunun yerine sunucuya ssh üzerinden bağlanıyoruz ve ardından orada rdesktop komutunu çalıştırıyoruz:
ssh ric
rdesktop -k en-us 192.168.1.1 -g 1900x1200

Ve bir mucize, masaüstümüzdeki pencerelerde oturum açma penceresi. Dikkatlice şifrelendiğini ve normal ssh trafiğinden ayırt edilemeyeceğini unutmayın.

Çorap-vekil

Kendimi başka bir otelde (kafe, konferans) bulduğumda, yerel wifi çoğu zaman korkunç - kapalı limanlar oluyor, kimse ne düzeyde güvenlik olduğunu bilmiyor. Ve diğer insanların erişim noktalarına fazla güven yok (bu paranoya değil, yakındaki bir kafe adına herkese 3G dağıtan (ve ilginç şeyler yazan) banal bir dizüstü bilgisayar kullanarak şifrelerin ve çerezlerin nasıl alındığını tamamen izledim. işlem)).

Kapalı portlar özel bir problemdir. Ya Jabber ele alınacak, sonra IMAP, sonra başka bir şey.

Normal bir VPN (pptp, l2tp, openvpn) bu gibi durumlarda çalışmaz - buna izin verilmez. 443. bağlantı noktasının en sık bırakıldığı ve CONNECT modunda, yani “olduğu gibi” atlandığı deneysel olarak bilinmektedir (normal http hala bir kalamar üzerine şeffaf bir şekilde sarılabilir).

Çözüm şudur çorap vekil ssh modu. İlkesi şudur: bir ssh istemcisi sunucuya bağlanır ve yerel olarak dinler. Bir istek aldıktan sonra (açık bir bağlantı üzerinden) sunucuya gönderir, sunucu isteğe göre bağlantı kurar ve tüm verileri ssh istemcisine geri aktarır. Ve arayan kişiye cevap verir. Çalışmak için uygulamalara “çorap-proxy kullan” demeniz gerekir. Ve proxy'nin IP adresini belirtin. Ssh söz konusu olduğunda, bu çoğunlukla localhost'tur (bu şekilde kanalınızı yabancılara vermemiş olursunuz).

Sock proxy modunda bağlantı şöyle görünür:
ssh -D 8080 [e-posta korumalı]

Diğer insanların wifi'sinin çoğu zaman sadece kötü değil, aynı zamanda gecikmeli olması nedeniyle, -C seçeneğini (trafiği sıkıştır) açmak güzel olabilir. Neredeyse opera turbo olduğu ortaya çıkıyor (sadece resim basmıyor). Http'de gerçek sörf yaparken, yaklaşık 2-3 kez vurur (okuyun - 64kbit'lik bir talihsizliğiniz varsa, o zaman megabayt sayfaları iki dakika değil, 40 saniye açacaksınız. Berbat, ama yine de daha iyi). Ama asıl mesele: çalınan çerezler ve gizlice dinlenen oturumlar yok.

Kapalı limanlardan bilerek bahsettim. 22. bağlantı noktası, "gereksiz" Jabber bağlantı noktasıyla tamamen aynı şekilde kapatılır. Karar - sunucuyu 443. bağlantı noktasında kapatmak. 22'den çekim yapmaya değmez, bazen "pseudo-ssl" nizin girmesine izin verilmeyecek DPI'lı (derin paket incelemesi) sistemler vardır.

Yapılandırmam şöyle görünüyor:

/etc/ssh/sshd_config:
(parça)
22 numaralı bağlantı noktası
443 numaralı bağlantı noktası

Ve işte vpn'yi tanımlayan bir dizüstü bilgisayardan ~/.ssh/config parçası

Ana Bilgisayar vpn Ana Bilgisayar Adı desunote.ru Kullanıcı vasya Sıkıştırma evet DynamicForward 127.1:8080 Bağlantı Noktası 443

(localhost yazmanın "tembel" biçimine dikkat edin - 127.1, bu 127.0.0.1 yazmak için oldukça yasal bir yöntemdir)

bağlantı noktası yönlendirme

"Sunucudan" ve "sunucuya" TCP tünelleme bulmaca işlemlerini gerçekleştirmenize izin veren SSH işlevselliğinin anlaşılması son derece zor kısmına geçiyoruz.

Durumu anlamak için aşağıdaki tüm örnekler bu şemaya atıfta bulunacaktır:

Yorumlar: İki gri ağ. İlk ağ tipik bir ofis ağına (NAT) benzer, ikincisi bir “ağ geçidi”, yani beyaz arayüze sahip bir sunucu ve kendi özel ağına bakan gri bir sunucu. Aşağıdaki akıl yürütmede, "dizüstü bilgisayarımızın" A ve "sunucu"nun B olduğunu varsayıyoruz.

Bir görev: yerel olarak çalışan bir uygulamamız var, başka bir kullanıcının (ağımızın dışında) ona bakmasına izin vermemiz gerekiyor.

Çözüm: yerel bağlantı noktasını (127.0.0.1:80) genel bir adrese iletin. Diyelim ki "kamuya açık" B'miz 80. bağlantı noktasını yararlı bir şeyle işgal etti, bu nedenle standart olmayan bir bağlantı noktasına (8080) ileteceğiz.

Son yapılandırma: 8.8.8.8:8080 istekleri dizüstü bilgisayar A'nın yerel ana bilgisayarına gidecek.

ssh -R 127.1:80:8.8.8.8:8080 [e-posta korumalı]

Seçenek -R bir uzaktan yönlendirme yapmanızı sağlar ( R emote) sunucu bağlantı noktasını kendinize (yerel).
Önemli: 8.8.8.8 adresini kullanmak istiyorsak, B sunucusunun ayarlarında GatewayPorts'a izin vermemiz gerekiyor.
Bir görev. "B" sunucusunda belirli bir arka plan programı (örneğin, sql sunucusu) dinliyor. Uygulamamız sunucu ile uyumlu değildir (farklı bitness, işletim sistemi, kötü yönetici, yasaklama ve sınırlama getirme vb.). Uzak localhost'a yerel olarak erişmek istiyoruz.

Son yapılandırma: "A" üzerindeki localhost:3333 isteklerine, localhost:3128 "B" üzerindeki bir arka plan programı tarafından hizmet verilmelidir.

Ssh -L 127.1:3333:127.1:3128 [e-posta korumalı]

Seçenek -L yerel aramalara izin verir ( L ocal) doğrudan uzak bir sunucuya.

Bir görev: "B" sunucusunda gri arayüzde, belirli bir servis dinliyor ve bir iş arkadaşının (192.168.0.3) bu uygulamaya bakmasına izin vermek istiyoruz.

Son yapılandırma: gri IP adresimize (192.168.0.2) yapılan istekler B sunucusunun gri arayüzüne gider.

Ssh -L 192.168.0.2:8080:10.1.1.1:80 [e-posta korumalı]

iç içe tüneller

Tabii ki, tüneller yeniden yönlendirilebilir.

Şimdi görevi karmaşıklaştıralım: şimdi bir meslektaşımıza 10.1.1.2 adresli bir sunucuda localhost üzerinde çalışan bir uygulamayı (port 80'de) göstermek istiyoruz.

Çözüm zor:
ssh -L 192.168.0.2:8080:127.1:9999 [e-posta korumalı] ssh -L 127.1:9999:127.1:80 [e-posta korumalı]

Ne oluyor? ssh'ye adresimizden yerel istekleri B sunucusunun yerel ana bilgisayarına yönlendirmesini ve bağlandıktan hemen sonra, yerel ana bilgisayarda dinleme ve istekleri sunucu 10.1.1.2'ye (istemcinin bağlanması gereken yere) iletme seçeneğiyle B sunucusunda ssh'yi (yani ssh istemcisini) başlatmasını söyleriz. ile). 9999 numaralı bağlantı noktası keyfi olarak seçilir, asıl şey ilk aramada ve ikinci aramada eşleşmesidir.

Ters Sox Proxy'si

Önceki örnek size basit ve açık görünüyorsa, bu örneğin ne yapacağını tahmin etmeye çalışın:
ssh -D 8080 -R 127.1:8080:127.1:8080 [e-posta korumalı] ssh -R 127.1:8080:127.1:8080 [e-posta korumalı]

Görevi 10.1.1.2 sunucusunda İnternet kullanımını yasaklamak olan bir güvenlik görevlisiyseniz, o zaman rahibin saçını çekmeye başlayabilirsiniz, çünkü bu komut sunucu 10.1.1.2'ye bir ağ üzerinden İnternet erişimi sağlayacaktır. "A" bilgisayarında çalışan çorap proxy'si. Trafik tamamen şifrelenmiştir ve diğer SSH trafiğinden ayırt edilemez. Ve "192.168.0/24" ağının bakış açısından bilgisayardan giden trafik, A bilgisayarının normal trafiğinden ayırt edilemez.

tünel açma

Bu noktada güvenlik departmanının poposu kel değilse ve ssh hala bir numaralı güvenlik düşmanı olarak listelenmiyorsa, işte her şeyin nihai katili: IP tüneli ve hatta ethernet. En uç durumlarda, bu, dhcp tünelleme, uzaktan arp sahtekarlığı, lan'da uyandırma ve diğer ikinci düzey ihlallere izin verir.

(Maalesef kendim kullanmadım).

Bu koşullar altında herhangi bir DPI'nin (derin paket denetimi) bu tür tünelleri yakalamasının imkansız olduğunu anlamak kolaydır - ya ssh'ye izin verilir (okumak - istediğinizi yapın) ya da ssh yasaktır (ve böyle bir tünelden güvenle çıkabilirsiniz). en ufak bir pişmanlık duymadan aptallar topluluğu).

Yetkilendirme iletme

Bunların hepsinin bu olduğunu düşünüyorsanız, o zaman ... ... ancak, henüz “aşağıdan” yazmamış olan yazarın aksine, okuyucu aşağıdan çok sayıda mektup olduğunu ve entrikanın işe yaramadığını önceden görür. .

OpenSSH, sunucuların güvenilmez olsalar ve istedikleri şekilde kötüye kullanılabilseler bile, sunucuların diğer sunuculara bağlanmak için bir sıçrama tahtası olarak kullanılmasına izin verir.

Resmi tekrarlıyorum:

Anahtarımızı kabul etmeye hazır olan 10.1.1.2 sunucusuna bağlanmak istediğimizi varsayalım. Ama onu 8.8.8.8'e kopyalamak istemiyoruz, çünkü bir ön bahçe var ve insanların yarısının sudo'su var ve diğer insanların dizinlerini karıştırabiliyor. Bir uzlaşma, yetki verecek "farklı" bir ssh anahtarına sahip olmak olacaktır. [e-posta korumalı] 10.1.1.2'ye kadar, ancak 8.8.8.8'den 10.1.1.2'ye kadar kimsenin girmesine izin vermek istemiyorsak, bu bir seçenek değildir (özellikle anahtar yalnızca kullanılamaz, aynı zamanda kendimize de kopyalanabilir. yağmurlu gün").

Ssh, bir ssh aracısını (anahtar için parola isteyen bir hizmet) iletme yeteneği sunar. Seçenek ssh -A yetkilendirmeyi uzak bir sunucuya iletir.

Çağrı şöyle görünür:

Ssh -A [e-posta korumalı] ssh [e-posta korumalı]

Uzak bir ssh istemcisi (8.8.8.8'de) 10.1.1.2'ye yalnızca bu sunucuya bağlıysak ve ssh istemcisine yetkilendirme aracısına erişim izni vermişsek (ancak anahtarı değil!) biz olduğumuzu kanıtlayabilir.

Çoğu durumda yuvarlanır.

Ancak, sunucu gerçekten kötüyse, sunucunun kökü, bağlandığımızda kimliğine bürünmek için soketi kullanabilir.

Daha da güçlü bir yöntem var - ssh'yi, uzak bir sunucu ile üzerinde çalıştığımız basit bir boruya ("boru" anlamında) dönüştürür.

Bu yöntemin ana avantajı, ara sunucunun proxy'sinden tamamen bağımsız olmasıdır. Sahte bir ssh sunucusu kullanabilir, tüm baytları ve tüm eylemleri günlüğe kaydedebilir, herhangi bir veriyi yakalayabilir ve istediği gibi taklit edebilir - etkileşim "son" sunucu ile istemci arasındadır. Son sunucu verileri sahteyse, imza eşleşmeyecektir. Veriler sahte değilse, oturum güvenli modda kurulur, bu nedenle müdahale edilecek hiçbir şey yoktur.

Bu harika ayarı bilmiyordum, bu yüzden redrampage'i çıkardım.

Yapılandırma iki ssh seçeneğine bağlıdır: -W seçeneği (ssh'yi bir "boruya" çevirme) ve yapılandırma seçeneği ProxyKomutu(komut satırı seçeneği yok gibi görünüyor) "programı çalıştır ve stdin/out'unu em" diyor. Bu seçenekler son zamanlarda ortaya çıktı, bu nedenle centos kullanıcıları yayılmakta.

Şuna benziyor (yukarıdaki resim için sayılar):

ssh/config:
Host raep HostName 10.1.1.2 Kullanıcı user2 ProxyCommand ssh -W %h:%p [e-posta korumalı]

Bağlantı önemsiz: ssh raep .

Önemli bir noktayı tekrarlamak için, 8.8.8.8 sunucusu trafiği engelleyemez veya sahtekarlık yapamaz, bir kullanıcı yetkilendirme aracısı kullanamaz veya trafiği başka bir şekilde değiştiremez. Yasakla - evet, yapabilirsiniz. Ancak izin verilirse, kodu çözmeden veya değiştirmeden kendi içinden geçecektir. Yapılandırmanın çalışması için, genel anahtarınızın olduğu gibi yetkili_anahtarlarda olması gerekir. [e-posta korumalı], içinde olduğu gibi [e-posta korumalı]

Elbette, bağlantı diğer tüm önemsiz öğelerle donatılabilir - bağlantı noktası iletme, dosya kopyalama, sox proxy'leri, L2 tünelleri, X sunucu tünelleme, vb.
ssh tünelleme Etiket ekle

Oldukça sık olarak, İnternet üzerinden uzak bir bilgisayara veya sunucuya erişmeniz gerekebilir. Kişisel bir bilgisayar söz konusu olduğunda, bir sorunu acilen çözmek için buna ihtiyaç duyulabilir ve bir sunucu söz konusu olduğunda bu genellikle çok yaygın bir uygulamadır. Linux'ta ssh, bu tür görevler için en yaygın kullanılan protokoldür.

ssh hizmeti, uzaktaki bir bilgisayarın terminaline erişmenize ve orada ihtiyacınız olan tüm komutları yürütmenize olanak tanır. Basitliğine rağmen, ciddi ticari görevlerin yanı sıra sıradan kullanıcıların görevlerini çözmek için kullanılabilecek kadar güvenlidir. Bu yazıda Ubuntu 16.04 ssh'nin nasıl kurulduğuna bir göz atacağız ve ayrıca bir ssh sunucusunun ilk kurulumundan bahsedeceğiz.

SSH veya Secure Shell, bir bilgisayardan diğerine ağ üzerinden güvenli erişim için bir protokoldür. SSH protokolünün birçok olasılığı vardır. Bilgisayarlar arasında güvenli bağlantılar oluşturabilir, uzak bir bilgisayarda komut istemi açabilir, grafik programları çalıştırabilir, dosya aktarabilir ve özel ağlar kurabilirsiniz.

OpenSSH yazılım paketi, Linux'ta SSH protokolünü desteklemekten sorumludur. Bu, gerekli tüm özellikleri sağlayan bu protokolün açık bir uygulamasıdır. OpenSSH paketi, bağlantı kurmak, dosyaları aktarmak ve ssh sunucusunun kendisi için yardımcı programları içerir.

OpenSSH'yi Ubuntu'ya Kurmak

Ubuntu'ya ssh kurmak çok basit olacak, program standart olarak kabul ediliyor ve hemen hemen her yerde kullanılıyor. Varsayılan olarak dağıtıma dahil edilmemesine rağmen, resmi depolarda mevcuttur.

Yüklemek için klavye kısayoluyla bir terminal açın Ctrl+Alt+T ve şu komutu çalıştırın:

sudo apt install openssh sunucusu

Birkaç paket indirilecek ve Ubuntu ssh sunucu kurulumu tamamlandığında program kullanıma hazır olacaktır. Hizmetin otomatik olarak başlamasını istiyorsanız, başlatmaya eklemeniz gerekir. Bu nedenle, ssh Ubuntu 16.04'ün çalışmasını etkinleştirmek için:

sudo systemctl sshd'yi etkinleştir

Daha sonra hizmeti başlangıçtan kaldırmak isterseniz, devre dışı bırak komutunu kullanın:

sudo systemctl sshd'yi devre dışı bırak

Ssh istemcisine gelince, varsayılan olarak sistemde zaten kuruludur. Artık basitçe şunu yazarak yerel ssh sunucunuza bağlanmayı deneyebilirsiniz:

Düşündüğümüz önceki makalelerden birinde, şimdi bu makinede yerel bir adres anlamına geldiğinden emin olabilirsiniz:

Tam olarak aynı şekilde, ağdaki diğer herhangi bir bilgisayara ubuntu erişimini ssh edebilirsiniz. Bunun için localhost yerine ip adresini ve kullanıcı adını aşağıdaki formatta belirtmeniz yeterlidir:

$ ssh Kullanıcı adı@IP adresi

Ubuntu'da SSH Kurulumu

Varsayılan ayarlarla SSH sunucusu çok güvenli değildir, bu nedenle program tam kullanıma hazır olmadan önce biraz yapılandırılması gerekir. Tüm SSH sunucu ayarları, /etc/ssh klasöründe bulunan sshd_config yapılandırma dosyasında saklanır.

Bu yapılandırma dosyasında değişiklik yapmadan önce, bunun bir yedek kopyasını almanız önerilir, bunun için aşağıdaki komutu kullanabilirsiniz:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults

sudo vi /etc/ssh/sshd_config

Her şeyden önce, ssh'nin çalıştığı bağlantı noktasını değiştirmek istenir, olası bir saldırgan bu hizmeti etkinleştirip etkinleştirmediğinizi bilmiyordu. Yapılandırma dosyasındaki satırı bulun Liman ve değerini herhangi bir sayı ile değiştirin, örneğin, 2222 numaralı bağlantı noktası:

Varsayılan olarak, süper kullanıcı girişi etkindir, bu seçeneğin devre dışı bırakılması önerilir. Bunu yapmak için satırı bulun İzin VerKökGiriş ve değerini hayır olarak değiştirin:

Parola yerine anahtarla kimlik doğrulamaya izin vermek için satırı bulun PubkeyAuthentication ve değerinden emin olun evet.

Tüm ayarlar tamamlandıktan sonra, :w tuşuna basarak değişiklikleri kaydedin ve ssd hizmetini yeniden başlatın:

sudo systemctl ssh'yi yeniden başlat

Makalede, ssh'nin çeşitli inceliklerini kurma ve kullanma hakkında daha fazla ayrıntı açıklanmaktadır.

Bağlantı noktasını değiştirdiyseniz, istemciye bağlanırken ayrıca yeni bir bağlantı noktası belirtmeniz gerekir, çünkü 22 varsayılan olarak kullanılacaktır, örneğin:

ssh -p 2222 yerel ana bilgisayar

Ek olarak, bilgisayarda bir güvenlik duvarı kurulu ve yapılandırılmışsa, yeni ssh bağlantı noktasına erişime izin vermesi gerekir, bunu yapmak için şunu çalıştırın:

sudo ufw 2222'ye izin veriyor

ssh hizmeti varsayılan portta olsa bile, bilgisayara internet üzerinden bağlanacaksanız güvenlik duvarında da açmanız gerekir:

sudo ufw 22'ye izin veriyor

Ubuntu 16.04 ssh kurulumu tamamlandı.

sonuçlar

Ubuntu 16.04 ssh kurulumu tamamlandığına göre artık bilgisayarınıza internet üzerinden uzaktan erişebilir ve güvenli olduğundan emin olabilirsiniz. Herhangi bir sorunuz varsa, yorumlarda sorun.

Ssh'nin ne olduğunu detaylı olarak anlatan videonun sonunda: