Kişiler

Linux'a ssh ile bağlanıyorum. SSH ile barındırma - neden faydalıdır? Süper kullanıcı için uzaktan erişimi reddet

SSH en önemli sistem yönetim araçlarından biridir.

SSH veya Secure Shell, uzak sistemlere güvenli bir şekilde bağlanmak için kullanılan bir protokoldür. Bu, uzak Linux ve Unix benzeri sunuculara (örneğin, VPS) bağlanmanın en yaygın yoludur.

Bu kılavuz, uzak bir sisteme bağlanmak için SSH'nin kullanımını kapsayacaktır.

Temel sözdizimi

Linux'ta SSH kullanarak uzak bir sisteme bağlanmak için aynı adda bir araç vardır - ssh.

Temel komut türü:

ssh uzak_ana bilgisayar

Bu örnekte "remote_host" ifadesi, bağlanmak istediğiniz ana bilgisayarın IP adresinin veya etki alanı adının yerine geçer.

Bu komut, uzak ve yerel sistemlerdeki kullanıcı adının aynı olduğunu varsayar.

Uzak sistemin farklı bir kullanıcı adı varsa, bunu aşağıdaki sözdizimini kullanarak belirtmeniz gerekir:

ssh kullanıcı adı@uzakanasistem

Sunucuya bağlandıktan sonra kimlik doğrulaması için bir şifre girmelisiniz.

Parola yerine kullanılabilecek anahtarları oluşturma prosedürü daha sonra açıklanacaktır.

Yerel oturumunuza dönmek için şunu yazmanız yeterlidir:

SSH nasıl çalışır?

SSH, bir istemci programını bir ssh sunucusuna bağlayarak çalışır.

Yukarıdaki komutlarda ssh istemci programıdır. Ssh sunucusu zaten belirtilen uzak ana bilgisayarda çalışıyor.

Eğer ssh sunucusu halihazırda VPS üzerinde çalışmıyorsa, sunucu sayfasında bulunan “Konsol Erişimi” butonuna tıklayın. Bu giriş ekranını getirecektir. Oturum açmak için kimlik bilgilerinizi kullanın.

Genel olarak ssh sunucusu başlatma işlemi kullandığınız Linux dağıtımına bağlıdır.

Ubuntu'da VPS'de bir ssh sunucusu başlatmak için şunu girmeniz gerekir:

Sudo hizmeti sshd başlangıcı

SSH'yi ayarlama

SSH ayarlarını değiştirdiğinizde ssh sunucusu ayarları da değişir.

Ubuntu'da ana SSH yapılandırma dosyası /etc/ssh/sshd_config konumunda bulunur.

Düzenlemeden önce bu dosyanın geçerli sürümünün yedeğini alın:

Sudo cp /etc/ssh/sshd_config(,.bak)

Bir metin düzenleyiciyle açın:

Sudo nano /etc/ssh/sshd_config

Bazı ayarlar özel dikkat gerektirir, örneğin:

Bu satır, ssh sunucusunun bağlantılar için hangi bağlantı noktasını dinleyeceğini belirtir. Varsayılan olarak bu, 22 numaralı bağlantı noktasıdır.

Sunucuyu yanlışlıkla yapılan bağlantı noktası taramalarından korumak için standart olmayan bir bağlantı noktası kullanılması önerilir. Yeni bağlantı noktasına nasıl bağlanacağınızı daha sonra göstereceğiz.

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key

HostKey satırları, ana bilgisayar anahtarlarının nerede bulunduğunu gösterir (ana bilgisayar anahtarları hakkında daha sonra daha fazla bilgi verilecektir).

Sistem Günlüğü Tesisi
Günlük Düzeyi BİLGİSİ

Bu satırlar günlük kaydı ayarlarını içerir ve günlük düzeyini belirler.

SSH ile ilgili herhangi bir sorunla karşılaşırsanız log düzeyini artırmanız önerilir (bu da yazılan veri miktarını artırır).

GirişGraceTime 120
PermitRootGiriş evet
SıkıModlar evet

Bu parametreler bazı kayıt bilgilerini içerir.

GirişGraceTime yetkilendirme olmadan bağlantının kaç saniye sürdürülmesi gerektiğini belirtir.

Not: Bu satırı normalde kayıt için gerekenden biraz daha uzun bir süreye ayarlayın.

İzinKökGiriş kök kullanıcı olarak oturum açıp açamayacağınızı belirler.

Çoğu durumda, yükseltilmiş ayrıcalıklara (su veya sudo) ve ssh aracılığıyla bağlanma yeteneğine sahip bir kullanıcı oluşturduktan sonra bu satırın "hayır" olarak ayarlanması önerilir.

katıModlar kimlik doğrulama dosyalarının herkes tarafından okunabilmesi durumunda oturum açmayı reddeden bir güvenlik cihazıdır.

Bu, yapılandırma dosyalarının korunmaması durumunda oturum açma girişimlerini önler.

X11Yönlendirme evet
X11Ekran Ofseti 10

Bu ayarlar, yerel sistemdeki uzak bir sistemin grafik kullanıcı arayüzünü (GUI) görüntülemenize olanak tanıyan X11 Yönlendirme adı verilen bir özelliği yapılandırır.

Bu seçeneğin hem yerel hem de uzak makinelerde etkinleştirilmesi gerekir; İşlevi kullanmak için istemciyi ve –X seçeneğini iletmeniz gerekir.

Bu dosyayı düzenledikten sonra yapılan değişiklikleri etkinleştirmek için ssh sunucusunu yeniden başlatmayı unutmayın:

sudo hizmeti sshd yeniden başlat

Ayrıca her şeyin beklendiği gibi çalıştığından emin olmak için yapılan değişikliklerin kapsamlı bir şekilde test edilmesi gerekir.

Sorunla karşılaşırsanız “Konsol Erişimi” butonunu kullanarak da giriş yapabileceğinizi unutmayın.

SSH anahtarlarını kullanarak giriş yapın

Anahtar tabanlı kimlik doğrulama genellikle uzak bir sistemde parola kullanarak oturum açmaktan çok daha güvenlidir.

Anahtar tabanlı kimlik doğrulama nasıl çalışır?

Anahtar tabanlı kimlik doğrulama, biri özel, diğeri genel olmak üzere bir çift anahtar oluşturmayı içerir.

Özel anahtar istemci makinede bulunur ve korunması ve gizli tutulması gerekir.

Genel anahtar herkese verilebilir ve erişime ihtiyaç duyan herhangi bir sunucuya yerleştirilebilir.

Bir anahtar çifti kullanarak bağlanmaya çalışıldığında sunucu, istemci bilgisayar için yalnızca özel anahtar tarafından okunabilecek bir mesaj oluşturmak için genel anahtarı kullanır.

İstemci bilgisayar daha sonra sunucuya uygun yanıtı gönderir ve bu da sunucunun, istemcinin meşru olduğunu bilmesini sağlar.

Anahtarlar yapılandırıldıktan sonra tüm bu süreç arka planda otomatik olarak gerçekleşir.

SSH Anahtarları Oluşturma

Bağlantı kurmak istediğiniz bilgisayarda (genellikle yerel bilgisayar) SSH anahtarlarının oluşturulması gerekir.

Komut satırına şunu yazın:

ssh-keygen -t rsa

Varsayılan ayarları kabul etmek için Enter tuşuna basın. Anahtarlar ~/.ssh/id_rsa.pub ve ~/.ssh/id_rsa'da oluşturulacaktır.

Şunu yazarak .ssh dizinine gidin:

Dosya izinlerine dikkat edin:

ls -l
-rw-r--r-- 1 demo demo 807 9 Eylül 22:15 yetkili_anahtarlar
-rw---------- 1 demo demo 1679 9 Eylül 23:13 id_rsa
-rw-r--r-- 1 demo demo 396 9 Eylül 23:13 id_rsa.pub

Gördüğünüz gibi id_rsa dosyasını yalnızca dosyanın sahibi okuma ve değiştirme hakkına sahiptir. Anahtarın gizli kalması için bu tür ayrıcalıklar gereklidir.

Aynı zamanda id_rsa.pub dosyası da paylaşılabilir, dolayısıyla uygun ayrıcalıklara sahiptir.

Genel anahtarın sunucuya aktarılması

Aşağıdaki komut ortak anahtarı uzak sunucuya kopyalayacaktır:

ssh-kopya-kimliği uzak_ana bilgisayar

Bu, girmek için bir şifre girmenizi gerektiren bir SSH oturumu açacaktır.

Şifreyi girdikten sonra, ortak anahtar sunucuya kopyalanacak ve bir dahaki sefere şifre olmadan oturum açmanıza olanak tanıyacaktır.

SSH İstemci Ayarları

SSH aracılığıyla bağlanırken çeşitli işaretler kullanabilirsiniz.

Uzak ana bilgisayarın ssh dosyasında uygun parametreleri ayarlamak için bunlardan bazılarına ihtiyaç vardır.

Örneğin, localhost'taki ssh yapılandırmalarındaki port numarası değiştirilmişse, istemci tarafında karşılık gelen portu şunu yazarak ayarlamanız gerekir:

ssh -p bağlantı noktası_numarası uzak_anasistem

Uzak sistemde bir komut çalıştırmanız gerekiyorsa bunu aşağıdaki gibi belirtebilirsiniz:

ssh uzak_ana bilgisayar gerekli_komut

Bu hat uzaktaki makineye bağlantı kuracak ve belirtilen komutu yürütecektir.

Daha önce de belirtildiği gibi, X11 iletme özelliği her iki bilgisayarda da etkinse, şunu yazarak kullanılabilir:

ssh -X uzak_anasistem

Yerel sistem tüm uygun araçlara sahipse, uzak sistemde kullanılan GUI programları yerel bilgisayarda açılacaktır.

Sonuçlar

SSH ile çalışmayı öğrenmek, en temel görevleri gerçekleştirmek için gerekli olduğu için de olsa çok önemlidir.

SSH'yi sürekli kullanarak yalnızca sunucunuzu korumakla kalmaz, aynı zamanda ileri düzey bir kullanıcı haline gelirsiniz, bu da hayatınızı büyük ölçüde kolaylaştıracaktır. SSH protokolü güvenli, güvenilir ve çeşitli durumlarda kullanışlı olduğundan popülerliğini koruyor.

Etiketler: ,

SSH (Secure Shell), uzaktan sunucu yönetimi ve TCP şifreli bağlantılar üzerinden veri aktarımı için tasarlanmış bir ağ protokolüdür. Günümüzde çoğu barındırma hizmeti, hatta sanal olanlar bile, hem FTP hem de SSH aracılığıyla erişim sağlamaktadır. Bence bu harika, SSH'nin kullanımı çok daha kullanışlı ve daha güvenli.

SSH'yi ayarlama

Kurulum, Debian, Ubuntu'da özel bir sunucu olan VDS, VPS için gerçekleştirilecektir. Yapılandırma dosyası burada bulunur: /etc/ssh/sshd_config.conf
Düzenli bir hostinginiz varsa, her şeyin olması gerektiği gibi yapılandırılması gerekir, bölüme gidin.

Varsayılan olarak, SSHD arka plan programının (üzerinde değişiklik yaptığımız şey budur) herhangi bir ayara ihtiyacı yoktur ve düzgün çalışır. İstenmeyen kişilerin sunucuya erişimini sınırlamak için sadece birkaç küçük değişiklik yapacağız.

Yapılandırma dosyasında yanlış değişiklikler yapılmasının bir sonucu olarak, ssh yoluyla sunucuya erişiminizi kaybedebilirsiniz; bu nedenle, sunucuya erişmek için örneğin ISPManager kontrol panelini kullanmak gibi alternatif seçeneklerinizin olduğundan emin olun.

SSH erişimi nasıl kısıtlanır

Tüm değişiklikler /etc/ssh/sshd_config dosyasında yapıldı
Değişikliklerin etkili olması için şunları yapmalısınız:

Bağlantı noktasını değiştir

Bağlantı noktası 9724

Artık yetkilendirme yaparken standart 22 bağlantı noktası yerine 9724'ü belirtmeniz gerekiyor.
Yöntem, standart bağlantı noktalarını çalan çoğu basit hacker botuna karşı çok basit ve etkilidir. Burada asıl önemli olan diğer hizmetlerle çakışma yaratmamak ve açıkça kullanılmayan bir numara seçmektir.

Eski protokolü kullanarak iletişimi devre dışı bırakın

Burada iletişimin yalnızca v2 protokolü kullanılarak mümkün olduğunu tanımlıyoruz

Giriş yapmadıysanız kök, tüm konsol komutlarından önce sudo eklemeniz gerekir - bu, şu anlama gelir: Kullanıcıyı Değiştir ve Yap- kullanıcıyı değiştirin ve yapın (onun altında). Örneğin, süper kullanıcı olarak komutları yürütmenize olanak tanır kök.

Yetkilendirme denemelerinin sayısını azaltın

MaxAuthDeneme 2

Şifre denemesi sayısı. Varsayılan 6'dır. Arama başarısız olursa iletişim oturumu sonlandırılır.

Yetkilendirme bekleme süresini azaltın

GirişGraceTime 30s

Varsayılan olarak bir yetkilendirme oturumu 120 saniye sürebilir. Bu süreden sonra biter. Yetkilendirme için 2 dakika çok fazla; tüm bu süre boyunca sunucu bağlantıyı açık tutuyor ki bu da çok mantıksız. Yarım dakika yeterli.

IP erişimini kapat

IP kısıtlamalarını ayarlamadan önce, ayarlarda bir hata olması ve ardından kendi IP'nizin yasaklanması durumunda, hala alternatif yol sunucuya yeniden erişim sağlayın

Yalnızca erişime ihtiyacınız varsa, en basit ve en güvenilir yol, IP'niz veya dinamikse IP aralığı dışında her yerden erişimi engellemektir.

  1. /etc/hosts.allow dosyasını açın ve buraya SSHD'yi ekleyin: 192.168.1.1

    192.168.1.1 IP'nizdir. Dinamik bir IP'niz varsa, alt ağ maskesiyle bir IP tanımlayın ve IP yerine alt ağınızı yazın, örneğin:

    SSHD: 192.168.0.0/16

  2. /etc/hosts.deny dosyasını açın ve buraya ekleyin: SSHD: ALL

IP yoluyla erişimi kısıtlamanın başka bir yolu

Aşağıdaki yönergeyi kullanabilirsiniz:

İzin Veren Kullanıcılar = *@1.2.3.4

Burada yalnızca IP 1.2.3.4 için erişime izin veriyoruz

Anahtarlarla SSH yetkilendirmesi

Ssh yetkilendirmesini şifre olmadan ayarlamak çok daha güvenli, daha kullanışlı ve doğru olacaktır. Bu amaçla anahtar yetkilendirme kullanılacaktır.

İşte talimatlar.

SSH - (Secure Shell), Linux işletim sistemini çalıştıran bir bilgisayarın uzaktan kontrolüne yönelik bir protokoldür. Ssh esas olarak sunucuları bir terminal aracılığıyla uzaktan yönetmek için kullanılır. Birkaç sunucunun yöneticisiyseniz ve hatta ileri düzey bir web yöneticisiyseniz, muhtemelen genellikle belirli bir bilgisayarla ssh aracılığıyla çalışma ihtiyacıyla karşı karşıya kalırsınız. Linux'ta bunun için istemcinin bağlanması gereken makinede ve bağlandıkları makinede bir ssh sunucusu kullanılır.

Bu kılavuzda ssh'nin nasıl kullanılacağına ve hatta bilmediğiniz yeteneklerine bakacağız. Büyük olasılıkla, ssh aracılığıyla bir sunucuya nasıl bağlanacağınızı zaten biliyorsunuzdur, ancak bu yardımcı programın ssh dosyalarını aktarma, parola olmadan bağlanma veya uzak sunucuda bir komut dosyası çalıştırma gibi daha birçok özelliği vardır. Bütün bunları daha sonra makalede ele alacağız.

Ama en temel bilgilerle başlayalım.

Komutun sözdizimi aşağıdaki gibidir:

$ssh [seçenekler] Kullanıcı adı@sunucu [komut]

Ssh'nin protokolün iki versiyonunu kullanarak çalışabileceğini unutmamak önemlidir. Sürüm 1 ve 2. Sürüm 2'nin daha iyi olduğu ve daha fazla şifreleme ve kimlik doğrulama türünü desteklediği açıktır. Bu yazıda protokol farklılıkları hakkında daha fazla konuşmayacağız ve sürüm 2'yi kullandığınızı varsayacağım.

SSH Komut Seçenekleri

Şimdi ssh komutunun en temel seçeneklerine bakalım:

  • F- ssh'yi arka plan moduna alın
  • G- uzak makinelerin yerel bağlantı noktalarına erişmesine izin ver
  • ben- sistemdeki kullanıcı adı
  • N- standart çıktıyı /dev/null'a yönlendir
  • P- uzak makinedeki ssh bağlantı noktası
  • Q- hata mesajlarını gösterme
  • v- hata ayıklama modu
  • X- X11 yönlendirmesini devre dışı bırakın
  • X- X11 yönlendirmesini etkinleştir
  • C- sıkıştırmayı etkinleştir

Bunlar yardımcı programın tüm seçenekleri değildir; geri kalanı bu makalenin kapsamı dışındadır. Ssh işlemine ilişkin birçok ayar, ~/.ssh/config yapılandırma dosyası aracılığıyla değiştirilebilir, ancak bunu burada da ayrıntılı olarak ele almayacağız.

SSH sunucusu kurma

SSH sunucusu ayarları /etc/ssh/sshd_config dosyasında bulunur. Birçoğuna da dokunmayacağız. Sadece en ilginç olanları ele alalım. İlk önce /etc/ssh/sshd.conf dosyasını açın

ssh bağlantı noktası

Varsayılan olarak ssh, 22 numaralı bağlantı noktasında çalışır. Ancak saldırgan bu bağlantı noktasını bildiğinden ve parolayı kaba kuvvetle zorlamak için Bruteforce saldırısı gerçekleştirmeye çalışabileceğinden bu davranış güvenli değildir. Bağlantı noktası şu satırla belirtilir:

Bağlantı noktası değerini istediğiniz değere değiştirin.

SSH protokolü

Varsayılan olarak ssh sunucusu uyumluluk açısından iki protokol sürümünde çalışabilir. Yalnızca protokol sürüm 2'yi kullanmak için satırın açıklamasını kaldırın:

Ve onu bu forma getirin:

Rota erişimi

Varsayılan olarak, ssh yoluyla Root erişimine izin verilir, ancak bu davranış çok güvensizdir, bu nedenle satırın yorumunu kaldırın:

İzinKökGiriş no

Yalnızca belirli bir kullanıcı SSH'ye erişebilir

Yalnızca belirli bir kullanıcı veya grup için ssh erişimine izin verebiliriz. Bunu yapmak için satırları ekleyin:

AllowUsers Kullanıcı1, Kullanıcı2, Kullanıcı3
AllowGroups Grup1, Grup2, Grup3

Burada Kullanıcı1 ve Grup1 erişime izin verilmesi gereken kullanıcı ve gruptur.

X11 uygulamalarını çalıştırma

Herkes bilmiyor ama tam teşekküllü X11 uygulamalarını başlatmak için ssh'yi kullanmak mümkün. Aşağıda bu konuya değineceğiz ancak her şeyin işe yaraması için sunucu tarafında bu özelliği etkinleştirmeniz, aşağıdaki satırı eklemeniz gerekiyor:

X11Yönlendirme evet

Temel seçenekleri ele aldık, devam etmeden önce değişiklikleri kaydetmek için ssh sunucusunu yeniden başlatmayı unutmayın:

hizmet sshd yeniden başlat

SSH'yi kullanma

Bu makalenin temel amacı, ssh kullanmanın muhtemelen bilmediğiniz ilginç ve kullanışlı yollarını göstermektir. En iyi kısma geçelim: ssh yetenekleri.

Sunucuya bağlanıyor

Sunucuya SSH aracılığıyla bağlanmak için aşağıdaki komutu kullanın:

Komutu çalıştır

Uzak bir sunucuya bağlanmaya ve ancak o zaman gerekli komutları yürütmeye alışkınız, ancak aslında ssh yardımcı programı, uzak makinenin terminalini açmadan istediğiniz komutu hemen yürütmenize olanak tanır. Örneğin:

ssh kullanıcı@ana bilgisayar ls

Uzak sunucuda ls komutunu yürütün ve çıktısını geçerli terminale döndürün.

Yerel betiği çalıştır

Uzak sunucuda bash yorumlayıcısını çalıştıralım ve Bash giriş yönlendirmesini kullanarak yerel betiğimizi ona aktaralım:

ssh kullanıcı@ana bilgisayar "bash -s"< script.sh

Uzak bir sunucuya yedekleme ve kurtarma

Bir disk yedeğini doğrudan ssh kullanarak uzak bir sunucuya kaydedebiliriz. Yeniden yönlendirme operatörünü | kullanarak dd çıktısını yeniden yönlendirelim ve ardından bunu o tarafta bir dosyaya kaydedelim:

sudo dd if=/dev/sda | ssh user@host "dd of=sda.img"

Şimdi, yaptığınız kopyadan disk durumunu geri yüklemek için şunu çalıştırın:

ssh user@host "dd if=sda.img" | dd of=/dev/sda

Burada ve üstünde /dev/sda sabit sürücünüzün dosya adıdır.

Şifre olmadan kimlik doğrulama

Sunucuya giriş yapmak için ssh şifresi kullanmak hem zahmetli hem de güvensizdir, çünkü bu şifre her an tahmin edilebilir. En güvenli ve yaygın olarak kullanılan kimlik doğrulama yöntemi, bir RSA anahtar çifti kullanmaktır. Özel anahtar bilgisayarda saklanır ve genel anahtar, kullanıcıyı tanımlamak için sunucuda kullanılır.

Bu davranışı yapılandırmak çok kolaydır. İlk önce şu komutla bir anahtar oluşturun:

ssh-keygen -t rsa

Anahtar oluştururken birkaç soruyu yanıtlamanız gerekecek; konumu varsayılan olarak bırakın; şifre olmadan bağlanmak istiyorsanız Passphare alanını da boş bırakın.

Daha sonra anahtarı sunucuya göndeririz:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@host

Yerel dosyadan şifreyi al

Parolaları düz metin dosyalarında saklamanın güvenli olmadığını hatırlatmama izin verin, ancak isterseniz evet mümkündür. Bunu yapmak için Bash'in giriş yönlendirme operatörünü kullanın:

ssh kullanıcı@ana bilgisayar< local_file.txt

SSH karşılamasını değiştir

Ssh ile giriş yaptığınızda bir karşılama mesajı görüntülenebilir, bunu değiştirmek çok kolaydır. Bundan /etc/issue dosyası sorumludur. Sadece bu dosyayı açın ve istediğiniz metni girin:

Başarısız SSH giriş denemelerine bakma

Sunucunuza ssh üzerinden ve hangi IP adreslerinden erişmeye yönelik başarısız bir girişim olup olmadığını görmek ister misiniz? Basitçe, tüm istekler /var/log/secure dosyasına kaydedilir; komutla yalnızca gerekli verileri filtreleyelim:

kedi /var/log/secure | grep "Şifre başarısız oldu"

Dosyaları SSH aracılığıyla aktarma

Komutları çalıştırmanın yanı sıra dosyaları ssh aracılığıyla kopyalayabilirsiniz. Bunun için scp yardımcı programı kullanılır. Aktarmak istediğiniz dosyayı, uzak sunucuyu ve sunucudaki klasörü burada belirtmeniz yeterlidir:

$scp /adres/yerel/dosya kullanıcı@anasistem:adres/klasörler

Örneğin:

scp ~/test.txt user@host:belgeler

Scp yardımcı programının yanı sıra, ssh dosya aktarımı daha fazla yapılabilir kurnaz bir şekilde. Dosyayı okuyalım ve iletmek için cat'i kullanalım ve ardından akışı bir dosyaya kaydedelim:

kedi yerel dosyası | ssh user@host "kedi > uzak dosya"

ssh user@host "kedi > uzak dosya"< localfile

tar czf - /home/kullanıcı/dosya | ssh user@host tar -xvzf -C /home/uzakkullanıcı/

Ssh dosyalarını bu şekilde kopyalamak, tüm klasörleri aynı anda göndermenize olanak tanır.

Grafik uygulamalarını ssh üzerinden çalıştırma

Bunu veya bu grafik uygulamayı uzak bir makinede çalıştırmanız gerekiyorsa, bunun için VNC kullanmanıza gerek yoktur, ssh'nin yeteneklerini kullanabilirsiniz. Program sunucu tarafında yürütülecek ve ihtiyacınız olan her şeyi yapabilmeniz için size yalnızca bir pencere gösterilecektir. Üstelik tüm veriler şifreleniyor. Bu özelliğin çalışması için sunucu tarafında etkinleştirmeniz gerekir.

Daha sonra uzak sunucudaki grafik uygulamasını şu şekilde başlatmak için komutu çalıştırıyoruz:

ssh -XC user@remotehost "Eclipse"

Daha önce de gördüğünüz gibi, X seçeneği istemci tarafında X11 yönlendirmesine izin veriyor, C seçeneği ise veri sıkıştırmaya izin veriyor.

Ssh oturumunu sonlandırma

Kararsız bir İnternet ile ssh kullandıysanız, bağlantı zaman zaman kesildiğinde muhtemelen terminali kapatmaktan yorulmuşsunuzdur, çünkü aksi takdirde ilk bakışta oturumu sonlandırmanın bir yolu yoktur. Uzak sunucuyla bağlantı koptuğunda herhangi bir komut giremezsiniz ve Ctrl+C, Ctrl+Z, Ctrl+D tuş kombinasyonları çalışmaz. Ve istemci bu komutları sunucuya göndermeye çalıştığı için çalışmayacaklar. Ancak bir çözüm var: Kaçış sekansları. Desteklerini etkinleştirmek için şu satırı ekleyin:

/etc/ssh/ssh_config dosyasına

Tüm tarife planlarında SSH üzerinden bağlantı mümkündür, “Host-Lite” tarifesi hariç. Host-Lite tarife planını sipariş ettiyseniz tarifeyi yükseltin; SSH aracılığıyla bağlanabileceksiniz:

Paylaşılan barındırma planları Midnight Commander'ı kullanma olanağı sağlamaz. Bu fırsat mevcut.

Ev bilgisayarınıza kurulu işletim sistemine bağlı olarak (barındırma işletim sistemiyle karıştırılmamalıdır) aşağıdakiler mümkündür: SSH bağlantı seçenekleri.

Bilgisayarınız Windows işletim sistemini çalıştırıyor

SSH aracılığıyla bağlanmak için:

SSH aracılığıyla bağlandığınızda barındırma ana dizininizde olacaksınız. Konsol komutları Linux bağlantıda sunulmaktadır. Lütfen unutmayın: Bu komutların çoğu, root erişiminiz olmadığı için paylaşılan barındırmada (paketleri yükleme ve kaldırma, dosya sistemlerini bağlama vb.) yürütülemez.

Bilgisayarınızda Linux benzeri bir işletim sistemi kuruludur (Ubuntu, Kubuntu, Fedora, ...)

İşletim sisteminde zaten mevcut olan bir terminal aracılığıyla SSH aracılığıyla bağlanabilirsiniz.

Bitti, SSH aracılığıyla bağlandınız.

Ek bir SSH kullanıcısı oluşturmak mümkün mü?

Paylaşımlı barındırmada, SSH aracılığıyla bağlantı yalnızca ana barındırma oturum açma adı altında mümkündür (tip u1234567). Ek bir SSH kullanıcısı oluşturamazsınız.

SSH erişimi nasıl devre dışı bırakılır?

Hostinginizde SSH erişimini devre dışı bırakmak için yazın. Başvurunuzda lütfen barındırma giriş bilgilerinizi girin (yazın u1234567), bunun için SSH erişimini devre dışı bırakmanız gerekir.

SSH nedir ve neden buna ihtiyacınız var?

Secure Shell (SSH), uzak bir makineye güvenli bir kanal aracılığıyla kabuk işlevleri sağlayan bir ağ protokolüdür. SSH, kullanıcı/ana bilgisayar kimlik doğrulaması, veri şifreleme ve veri bütünlüğü dahil olmak üzere çeşitli güvenlik geliştirmeleriyle birlikte gelir; bu da gizlice dinleme, DNS/IP sahtekarlığı, veri sahteciliği ve bağlantı ele geçirme gibi popüler saldırıları imkansız hale getirir. Verileri açık metin olarak aktaran protokolün SSH'ye geçmesi şiddetle tavsiye edilir.

OpenSSH açık kaynaklı bir uygulamadır kaynak kodu Bir dizi program kullanarak ağdaki bağlantıyı şifrelemenizi sağlayan SSH protokolü. Eğer Linux'ta SSH'ye sahip olmak istiyorsanız OpenSSH sunucu ve istemci paketlerinden oluşan OpenSSH'yi kurabilirsiniz.

OpenSSH sunucu/istemci paketleri aşağıdaki yardımcı programlarla birlikte gelir:

  • OpenSSH sunucusu: sshd (SSH arka plan programı)
  • OpenSSH istemcisi: scp (güvenli uzaktan kopyalama), sftp (güvenli dosya aktarımı), slogin/ssh (güvenli uzaktan oturum açma), ssh-add (özel anahtar tamamlama), ssh-agent (kimlik doğrulama aracısı), ssh-keygen (kimlik doğrulama anahtarı yönetimi) ).
OpenSSH sunucusunu ve istemcisini Linux'a kurmak

OpenSSH sunucusunu/istemcisini kurmak ve OpenSSH sunucusunu otomatik olarak başlayacak şekilde yapılandırmak istiyorsanız, dağıtıma bağlı olarak değişen aşağıdaki talimatları izleyin.

Debian, Ubuntu veya Linux Mint

$ sudo apt-get install openssh-sunucu openssh-client

Debian tabanlı sistemlerde, kurulduktan sonra OpenSSH açılışta otomatik olarak başlayacaktır. Herhangi bir nedenle OpenSSH sunucusu sistem başlangıcında otomatik olarak başlamazsa, sistem başlangıcında önyüklemeye açıkça ssh eklemek için aşağıdaki komutu çalıştırabilirsiniz.

$ sudo update-rc.d ssh varsayılanları

Fedora veya CentOS/RHEL 7

$ sudo yum -y openssh-server'ı yükle openssh-clients $ sudo systemctl sshd hizmetini başlat $ sudo systemctl sshd.service'i etkinleştir

CentOS/RHEL 6

$ sudo yum -y openssh-sunucusunu yükle openssh-istemcileri $ sudo hizmeti sshd'yi başlat $ sudo chkconfig sshd'yi aç

Arch Linux

$ sudo pacman -Sy openssh $ sudo systemctl sshd hizmetini başlat $ sudo systemctl sshd.service'i etkinleştir

OpenSSH sunucusu kurma

OpenSSH sunucusunu yapılandırmak istiyorsanız /etc/ssh/sshd_config dosyasında bulunan sistem genelindeki yapılandırma dosyasını düzenleyebilirsiniz.

İlginizi çekebilecek birkaç OpenSSH seçeneği vardır:
Varsayılan olarak sshd, 22 numaralı bağlantı noktasını dinler ve gelen ssh bağlantılarını dinler. Ssh için varsayılan bağlantı noktasını değiştirerek çeşitli otomatik hacker saldırılarını önleyebilirsiniz.
Eğer makinenizde birden fazla fiziksel ağ arayüzü varsa hangisinin sshd ile ilişkili olduğunu kontrol etmek isteyebilirsiniz, bunun için ListenAddress seçeneğini kullanabilirsiniz. Bu seçenek, gelen SSH'yi yalnızca belirli bir arayüzle sınırlandırarak güvenliğin artırılmasına yardımcı olur.

HostKey /etc/ssh/ssh_host_key

HostKey seçeneği, kişisel ana bilgisayar anahtarının nerede bulunduğunu belirler.

İzinKökGiriş no

PermitRootLogin seçeneği – root'un sisteme ssh aracılığıyla giriş yapıp yapamayacağı.

İzin Veren Kullanıcılar alice bob

AllowUsers seçeneğini kullanarak belirli Linux kullanıcıları için ssh hizmetini seçerek devre dışı bırakabilirsiniz. Birden çok kullanıcıyı boşluklarla ayırarak belirtebilirsiniz.

/etc/ssh/sshd_config değiştirildikten sonra ssh hizmetini yeniden başlattığınızdan emin olun.

OpenSSH'yi Debian, Ubuntu veya Linux Mint'te yeniden başlatmak için:

$ sudo /etc/init.d/ssh yeniden başlat

OpenSSH'yi Fedora, CentOS/RHEL 7 veya Arch Linux'ta yeniden başlatmak için:

$ sudo systemctl sshd.service'i yeniden başlat

OpenSSH'yi CentOS/RHEL 6'da yeniden başlatmak için:

$ sudo hizmeti sshd yeniden başlat

SSH'ye nasıl bağlanılır

Linux'tan SSH'ye bağlanma

Linux kullanıcılarının ek program yüklemesine gerek yoktur.

Windows'tan SSH'ye bağlanma

Misafirlerden gizlendi

.

Cygwin bir SSH istemcisinden daha fazlasıdır. Birçok Linux komutunu destekleyen güçlü bir birleştiricidir. Örneğin Cygwin, SSL sertifikaları oluşturmayı çok kolaylaştırıyor (tıpkı Linux gibi). Windows'ta kendinden imzalı sertifikalar oluşturmak için tefle dans etmeniz gerekir. Cygwin'in cURL'yi kullanması çok uygundur (ayrı bir şey yüklemeye gerek yoktur), vb. Windows'ta komut satırı ve Linux programları olmayanlar Cygwin'de bir çıkış yolu bulacaktır.

Cygwin'i kurmak kolaydır. Hadi gidelim

Misafirlerden gizlendi

Ve indir

Misafirlerden gizlendi

Misafirlerden gizlendi

Küçük bir dosya indirilecek - bu yükleyicidir. Grafik yükleyici. Her ne kadar içeriyorsa da çok sayıda seçeneklerin hepsi oldukça basittir ve birçoğu diğer grafik kurulum programlarından aşinadır. Bir şey net değilse "İleri"ye tıklamanız yeterlidir. Belki de yalnızca aşağıdaki pencere karışıklığa yol açabilir:

Kurulum için mevcut tüm öğeler burada sunulmaktadır. Şu anda bunları anlamamıza gerek yok. Çünkü en popüler olanları zaten kurulum için işaretlenmiştir. Ve gelecekte bir şeyler eksikse, ihtiyacınız olanı kolayca kurabilirsiniz.

SSH bağlantısı (Linux ve Windows için ortak)

Linux kullanıcıları konsolu açar, Windows kullanıcıları Cygwin yazar.

SSH'nin bağlanmak için aşağıdaki bilgilere ihtiyacı vardır:

  • IP veya ana bilgisayar adı
  • Port numarası
  • Kullanıcı adı
  • Kullanıcı şifresi
SSH bu parametrelerden ikisini tahmin edebilir: kullanıcı adı ve port numarası. Bir bağlantı noktası belirtilmezse varsayılan bağlantı noktası varsayılır. Kullanıcı belirtilmemişse bağlantının yapıldığı sistemdekiyle aynı ad kullanılır. Örneğin bağlantının ana bilgisayar adresi 192.168.1.36'dır. Eğer ararsam

Ssh192.168.1.36

Aşağıdakileri görüyorum

Alex@Mial-Pc ~ $ SSH 192.168.1.36 Konakçı "192.168.1.36 (192.168.1.36)" t "t" t "t" t "t anahtar parmak izi SHA256: Sixesuiivoeq00rxaqhxilxue8sc5r/yphf8s. Evet Hayır)?

Host'a ilk defa bağlandığım için tanımadığım bir host. Devam etmek isteyip istemediğimi soruyorlar. arıyorum Evet:

Uyarı: "192.168.1.36" (ECDSA) bilinen ana bilgisayarlar listesine kalıcı olarak eklendi. [e-posta korumalı]"ın şifresi:

Tamam, 192.168.1.36 ana bilgisayarı tanıdık ana bilgisayarlar listesine eklendi. Benden Alex kullanıcısı için bir şifre isteniyor. Çünkü SSH olan sunucuda böyle bir kullanıcı yok ama tıklıyorum Ctrl+C(kırmak için) ve uzak sistemin kullanıcı adıyla birlikte komutu girin. Kullanıcı uzak makinenin adresinden önce girilir ve adresten @ simgesiyle ayrılır. İngilizcede @ simgesi at olarak okunur ve “in” olarak çevrilebilir. Onlar. kayıt [e-posta korumalı]"192.168.1.36 makinesindeki mial kullanıcısı" olarak yorumlanabilir.

Ssh [e-posta korumalı]

Alex@MiAl-PC davetinin yerini mial@mint daveti aldı. Bu, zaten uzaktaki makinede olduğumuz anlamına gelir, yani zaten bir bağlantı kurduk. Bir bağlantı noktası belirtmeniz gerekiyorsa (standart olandan farklıysa), bağlantı noktası -p anahtarından sonra belirtilmelidir. Örneğin şöyle:

Ssh [e-posta korumalı]-p 10456

Bağlandıktan sonra şöyle bir şeyle karşılaşıyoruz:

Linux mint 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 Debian GNU/Linux sistemine dahil olan programlar özgür yazılımlardır; Her programın tam dağıtım koşulları /usr/share/doc/*/copyright içindeki ayrı dosyalarda açıklanmıştır. Debian GNU/Linux, geçerli yasaların izin verdiği ölçüde KESİNLİKLE HİÇBİR GARANTİ ile birlikte gelir. Son giriş: 16 Haziran Salı 15:32:25 2015, 192.168.1.35'ten

Buradan uzak makinenin Linux Mint olduğu, çekirdek 3.16, 64 bit sürümü olduğu anlaşılıyor. Ayrıca önemli bilgiler arasında son oturum açma zamanı ve bağlantının kurulduğu IP adresi de yer alır. Saat ve IP size tanıdık gelmiyorsa ve tek kullanıcı sizseniz, sisteminizin güvenliği ihlal edilmiştir ve uygun işlemi yapmanız gerekir.

Nerede olduğumuzdan ve kim olduğumuzdan emin olmak için birkaç komut yazalım: pwd, [B]uname -a vesaire.:

Oturumu sonlandırmak (oturumu kapatmak) için

Veya tıklayın Ctrl+D.

Şifre girmeden SSH'ye giriş yapın

İlk olarak, daha kullanışlı. İkincisi, daha güvenlidir.

Öncelikle RSA anahtarlarını oluşturmamız gerekiyor. Linux kullanıcısıysanız sorun yok. Windows kullanıcısıysanız ancak tavsiyemi dinlemeyip PuTTY'yi seçtiyseniz, o zaman bir sorununuz var ve bunu nasıl çözeceğinizi kendiniz düşünüyorsunuz. Cygwin'iniz varsa, o zaman her şey yolunda demektir.

Uzak sistemde oturum açmayı başardıysanız oturumu kapatın. Bundan sonra yazın

Ssh-keygen -t rsa

Bizden dosya ismi isteniyor, herhangi bir şey girmemize gerek yok, varsayılan isim kullanılacaktır. Ayrıca şifre istiyor. Şifreyi girmiyorum.

Şimdi uzaktaki makinede bir .ssh dizini oluşturmamız gerekiyor. Komutun uzak bir makinede çalıştırılması aşağıda tartışılacaktır. Şimdilik, IP adresini ve kullanıcı adını kendi adınızla değiştirmeyi unutmadan komutu kopyalamanız yeterli:

Ssh [e-posta korumalı] mkdir.ssh

Şimdi id_rsa.pub dosyasının içeriğini uzak makineye kopyalamamız gerekiyor. Bunu yapmak çok kolaydır (verileri kendi verilerinizle değiştirmeyi unutmayın):

Kedi .ssh/id_rsa.pub | ssh [e-posta korumalı]"kedi >> .ssh/yetkili_anahtarlar"

Artık sadece giriş yapıyoruz ve artık bizden şifre istemiyorlar. Ve artık hep böyle olacak.

Kabuk oturumu oluşturmadan uzak bir sunucuda komutları yürütme

Uzak sistemde bir kabuk oturumu açmanın yanı sıra ssh, uzak sistemde bireysel komutları yürütmenize de olanak tanır. Örneğin, ağaç komutunu Remote-sys adlı uzak bir ana bilgisayarda çalıştırmak ve sonuçları yerel sistemde görüntülemek için şunu yaparsınız:

Ssh uzak sistem ağacı

Gerçek örneğim:

Ssh [e-posta korumalı] ağaç

Bu tekniği kullanarak uzak bir sistemde ls komutunu çalıştırmak ve çıktıyı yerel sistemdeki bir dosyaya yönlendirmek gibi ilginç şeyler yapabilirsiniz:

Ssh uzak sistemi "ls *" > dirlist.txt

Gerçek örnek:

Ssh [e-posta korumalı]"ls *" > dirlist.txt cat dirlist.txt

Yukarıdaki komuttaki tek tırnaklara dikkat edin. Bunun nedeni yol genişletmenin yerel makinede yapılmasını istemememizdir; çünkü bu yürütmeye uzak bir sistemde ihtiyacımız var. Ayrıca, standart çıktıyı uzak makinedeki bir dosyaya yeniden yönlendirmek istiyorsak, yeniden yönlendirme ifadesini ve dosya adını tek tırnak içine alabiliriz:

Ssh uzak sistemi "ls * > dirlist.txt"

Standart çıktıyı yerel makineden uzak makineye ssh aracılığıyla aktarma

Komutları yürütmek için eşit derecede ilginç bir seçenek biraz daha yüksek olarak verilmiştir:

Kedi .ssh/id_rsa.pub | ssh [e-posta korumalı]"kedi >> .ssh/yetkili_anahtarlar"

  • Cat komutu, yerel makinede bulunan .ssh/id_rsa.pub dosyasının içeriğini satır satır okur ve görüntüler.
  • | (boru), standart çıktıda görünecek olanı başka bir komuta iletir.
  • Kendisine iletilen dizeleri işleyecek bir komut yerine uzak sistemle (ssh) bağlantı kurulur. [e-posta korumalı]).
  • Uzak sistem, cat >> .ssh/authorized_keys komutunun sağlandığı satırları alır. Onlar. standart çıktının içeriği uzak makinede bulunan .ssh/authorized_keys dosyasına satır satır yazılır.
Uzak bilgisayarda bulunan bir grafik programını açma

Bir sonraki numara iki Linux bilgisayarı gerektiriyor. Ne yazık ki Cygwin bile bu numarayı kaldıramıyor. Ayrıca her iki Linux sisteminin de grafiksel kullanıcı arayüzüne sahip olması gerekir.

SSH ile tünel açma

Uzak bir ana bilgisayarla SSH aracılığıyla bağlantı kurulduğunda meydana gelen diğer şeylerin arasında, yerel ve uzak sistemler arasında oluşturulan şifreli bir tünelin oluşturulması da vardır. Tipik olarak bu tünel, yerel makinede yazılan komutların uzak makineye güvenli bir şekilde iletilmesini ve sonucun da güvenli bir şekilde geri gönderilmesini sağlamak için kullanılır.

Bu temel işlevselliğe ek olarak SSH protokolü, çoğu trafik türünün şifreli bir tünel üzerinden gönderilmesine izin vererek yerel ve uzak sistemler arasında bir tür VPN (sanal özel ağ) oluşturur.

Bu özelliklerden belki de en sık kullanılanı X Window sistemlerinin trafiğini yayınlama yeteneğidir. X sunucusunu çalıştıran bir sistemde (bunlar grafiksel kullanıcı arayüzüne sahip makinelerdir), uzak bir sistemde bir X istemci programını (grafiksel uygulama) çalıştırmak ve yerel sistemdeki işleminin sonuçlarını görmek mümkündür. Bunu yapmak kolaydır. Örneğin, uzak ana bilgisayar Remote-sys'e bağlanmak istiyorum ve üzerinde xload programını çalıştırmak istiyorum. Aynı zamanda bu programın grafik çıktısını da yerel bilgisayarda görebileceğim. Bu şu şekilde yapılır:

Ssh -X uzak sys xload

Gerçek örnek:

Ssh-X [e-posta korumalı] gedit

Onlar. SSH -X anahtarıyla başlar. Ve sonra program basitçe başlar. Ekran görüntüsüne bakın.

Kali Linux'tayım. SSH aracılığıyla uzaktaki bir bilgisayara başarıyla giriş yapıyorum. Bundan sonra gedit programını çalıştırdım. Bu program Kali Linux'ta bile olmayabilir ama benim bağlandığım Linux Mint'te olduğu kesin. Bu programın sonucunu sanki program yerel olarak çalışıyormuş gibi ekranda görebiliyorum. Ama yine şunu anlamanızı istiyorum, yerel bilgisayarda çalışan bir gedit programı yok. Gedit'in (veya bu şekilde açılan herhangi bir programın) sonucunu kaydetmek istersem, uzak bilgisayarın ortamında çalıştığı, dosya sistemini gördüğü vb. ortaya çıkar. Bu, yapılandırmak istediğinizde kullanışlıdır. grafiksel bir arayüz kullanarak uzaktaki bilgisayar.

Daha sonra aynı makalenin tüm masaüstünden bir görüntünün nasıl aktarılacağını “SSH aracılığıyla VNC nasıl yapılandırılır” bölümünde öğreneceksiniz.

Bazı sistemlerde bu hile, -X seçeneği yerine -Y seçeneğinin kullanılmasını gerektirir.

Uzak bir bilgisayardan/bilgisayara kopyalama (scp ve sftp)

scp

OpenSSH paketi ayrıca dosyaları ağ üzerinden kopyalamak için şifreli bir SSH tüneli kullanan iki program içerir. İlk program - scp(“güvenli kopya”) - dosyaları kopyalamak için benzer cp programı gibi daha sık kullanılır. En göze çarpan fark, dosyanın kaynağının uzak ana bilgisayar ve ardından iki nokta üst üste ve dosyanın konumu olabilmesidir. Örneğin home dizinimizden document.txt isimli bir belgeyi yerel sistemimizdeki mevcut çalışma dizininde bulunan Remote-sys dizinine kopyalamak istersek şunu yapabiliriz:

Scp uzak-sys:document.txt . document.txt %100 177 0,2KB/s 00:00

Gerçek örnek:

# varsa yerel makinedeki dosyayı silin rm dirlist.txt # uzaktaki makinede bir dosya oluşturun ssh [e-posta korumalı]"ls * > dirlist.txt" # varlığını kontrol edin ssh [e-posta korumalı]"ls -l" # yerel makine scp'ye kopyalayın [e-posta korumalı]:dirlist.txt. # cat dirlist.txt içeriğini kontrol edin

  • [e-posta korumalı]- kullanıcı adı ve uzak ana bilgisayar,
  • . (nokta), dosyanın uzak sunucudaki geçerli çalışma dizinine kopyalanması gerektiği ancak dosya adının aynı kalacağı anlamına gelir; nfile.txt
  • Hafıza:

    B'de oturum açtığınızda B'den A'ya bir dosya kopyalamak için:
    scp /yol/giden/dosya kullanıcı adı@a:/yol/giden/hedef
    A'da oturum açtığınızda B'den A'ya bir dosya kopyalama:
    scp kullanıcı adı@b:/yol/giden/dosya /yol/giden/hedef

    sftp

    Dosyaları SSH üzerinden kopyalamak için ikinci program sftp. Adından da anlaşılacağı gibi güvenli bir ftp programı alternatifidir. sftp orijinal ftp programı gibi çalışır. Ancak açık metin göndermek yerine şifreli bir SSH tüneli kullanır. Sftp'nin ftp'ye göre önemli bir avantajı, uzak bir ana bilgisayarda çalışan bir FTP sunucusu gerektirmemesidir. Yalnızca bir SSH sunucusu gerektirir. Bu, SSH istemcisi aracılığıyla bağlanan herhangi bir uzak makinenin aynı zamanda FTP benzeri bir sunucu olarak da kullanılabileceği anlamına gelir. İşte bir örnek oturum:

    Alex@MiAl-PC ~ $ sftp [e-posta korumalı] 192.168.1.36'ya bağlanıldı. sftp> ls dirlist.txt newfile.txt nfile.txt temp Videolar Belgeler İndirilenler Görüntüler Müzik Genel Masaüstü Şablonları sftp> lls dirlist.txt nfile.txt sftp> ls temp temp/TakeMeHome sftp> cd temp/ sftp> get TakeMeHome Getiriliyor /home / mial/temp/TakeMeHome'dan TakeMeHome'a ​​sftp> güle güle

    SFTP protokolü birçok grafiksel protokol tarafından desteklenir. dosya yöneticileri Linux dağıtımlarında bulunabilir. Hem Nautilus'u (GNOME) hem de Konqueror'u (KDE) kullanarak, atlama çubuğuna sftp:// ile başlayan URI'leri (bağlantılar) girebilir ve SSH sunucusu çalıştıran uzak bir sistemde bulunan dosyalarla çalışabiliriz.



    Makaleyi beğendin mi? Paylaş