Doğrudan SSH bağlantısı, yerel bir terminalden veya VS Code'dan bir DSW örneğine bağlanmak için önerilen yöntemdir. Doğrudan SSH bağlantıları, ProxyClient bağlantılarına kıyasla daha hızlı ve daha kararlıdır.
Sınırlamalar
-
Desteklenmeyen örnek türleri
Genel kaynak gruplarında, adları
ecs.ebmile başlayan örnek türleri doğrudan SSH bağlantılarını desteklemez. -
Genel ağ bağlantı sınırları
Bir DSW örneğine genel ağ üzerinden bağlandığınızda, PAI her Internet NAT ağ geçidinde DNAT kurallarını otomatik olarak yapılandırır. Manuel yapılandırma gerekmez.
Her Internet NAT ağ geçidi en fazla 100 DNAT kuralını destekler. Bu nedenle, aynı anda en fazla 100 DSW örneği bağlanabilir. Kotalar hakkında daha fazla bilgi için bkz. Kotalar.
Faturalama
Bir DSW örneğine genel ağ erişimi sağlamak için bir NAT ağ geçidi, bir Elastic IP adresi (EIP) veya bir Network Load Balancer (NLB) gereklidir. NAT ağ geçitleri, EIP'ler ve NLB'ler bağımsız olarak faturalandırılır. DSW örneği durdurulduktan sonra bile ücretlendirme devam eder. Bu kaynaklara artık ihtiyacınız kalmadığında bunları derhal silin.
Uygulama adımları
Adım 1: Özel DNS çözümlemeyi etkinleştirin
DSW örnekleri sanal özel bulutlarda (VPC) dağıtılır ve SSH bağlantıları örnek IP adreslerini çözmek için özel DNS'e dayanır. Bir DSW örneğine bağlanmadan önce özel DNS çözümlemeyi etkinleştirin. Daha fazla bilgi için bkz. Private DNS'i Etkinleştir.
Adım 2: Bir SSH anahtar çifti oluşturun
Bir SSH anahtar çifti oluşturmak için istemcinizde aşağıdaki komutu çalıştırın. İstendiğinde anahtar çifti için bir parola belirleyin. Örneğe bağlanmak için remote_ikernel kullanmayı planlıyorsanız (bu konudaki senaryo örneğine bakın), parolayı boş bırakın ve Enter tuşuna basın.
Anahtar çiftini varsayılan yolda oluşturun (önerilir)
Aşağıdaki komutu çalıştırın:
ssh-keygen
Komut çalıştıktan sonra, genel anahtar (id_rsa.pub) ve özel anahtar (id_rsa) aşağıdaki dizinlerde oluşturulur. Zaten bir SSH anahtar çifti varsa mevcut dosyaların üzerine yazılır. Varsayılan yollar işletim sistemine göre değişir:
Windows:
C:\Users\<username>\.sshdizini.Linux: root kullanıcı için
/root/.sshdizini veya standart kullanıcılar için/home/<username>/.sshdizini.macOS:
/Users/<username>/.sshdizini.
Anahtar çiftini özel bir dizinde oluşturun
Aşağıdaki komutu çalıştırın:
ssh-keygen -f /your/path/example_rsa # Generates example_rsa.pub and example_rsa in /your/path
Adım 3: DSW örneği için SSH ayarlarını yapılandırın
Bir DSW örneği oluşturun sırasında aşağıdaki ağ parametrelerini yapılandırın.
Mevcut bir örnek için parametreleri değiştirmek üzere Change Settings seçeneğini tıklayın ve değişiklikleri uygulamak için OK düğmesini tıklayın.
|
Parametre |
Açıklama |
|
VPC Settings, vSwitch, Security Group |
Genel bir kaynak grubunda DSW örneği oluşturmak için VPC Settings, bir vSwitch ve bir Security Group gereklidir. Aşağıdaki adımları izleyerek bu kaynakları oluşturabilirsiniz. Daha fazla bilgi için bkz. VPC ve vSwitch Oluşturma ve Güvenlik gruplarını yönetme. VPC ve güvenlik grubu, DSW örneğiyle aynı bölgede olmalıdır. Önemli
Güvenlik grubunun gelen kurallarının, istemci IP adresinizden TCP bağlantı noktası 22 üzerindeki trafiğe izin verdiğinden emin olun. |
|
Enable SSH |
Anahtarı açın ve ardından Adım 2'de oluşturulan genel anahtar dosyası |
|
Service Access and Port Configuration |
Enable SSH anahtarını açtıktan sonra SSH adlı bir hizmet görünür.
|
|
Public Network Access |
Genel ağ erişimi gerekiyorsa bu parametreyi yapılandırın. DNAT + EIP seçeneğini belirleyin.
NAT ağ geçidi ve EIP oluşturmak için şu adımları izleyin: Bunun yerine bir NLB de kullanabilirsiniz. NLB örneğini oluştururken Instance Network Type değerini Internet olarak ayarlayın ve geçerli DSW örneğiyle aynı VPC'yi seçin. Daha fazla bilgi için bkz. IPv4 yük dengeleme için NLB'ye giriş. Not
Birden çok DSW örneği aynı DNAT kuralını ve EIP'yi (veya NLB'yi) paylaşıyorsa farklı genel erişim bağlantı noktaları kullanın. |
Adım 4: SSH sunucusunu yükleyin
Resmi temel görüntüler ve bunlardan türetilen özel görüntülerde SSH sunucusu varsayılan olarak yüklü ve çalışır durumdadır.
DSW örneğinin terminalinde hizmet durumunu kontrol etmek için service ssh status komutunu veya sshd işleminin var olup olmadığını kontrol etmek için pgrep sshd komutunu çalıştırın. SSH hizmeti çalışmıyorsa SSH sunucusunu yüklemek için aşağıdaki komutları çalıştırın.
**Konsoldaki SSH Ready durumu yalnızca yapılandırmanın tamamlandığını gösterir. sshd işleminin çalıştığı anlamına gelmez. Onaylamak için pgrep sshd komutunu çalıştırın.**
sudo apt-get update
sudo apt-get install openssh-server
sudo service ssh start
sudo komutu bulunamazsa önce apt-get install sudo komutunu çalıştırın ve ardından önceki komutları yeniden deneyin.
CentOS veya Red Hat Enterprise Linux (RHEL) sistemlerinde yum install openssh-server veya dnf install openssh-server komutunu çalıştırın.
Adım 5: DSW örneğine bağlanın
-
Erişim yöntemlerini görüntüleyin.
DSW sayfasında örnek adına tıklayarak örnek ayrıntıları sayfasına gidin. Instance Settings sekmesinde Network Settings bölümünü bulun ve genel erişim yöntemi ile VPC erişim yöntemini görüntüleyin.
NotSSH yapılandırmasında genel erişim seçilmediyse burada yalnızca VPC erişim yöntemi görüntülenir.
-
DSW örneğine bağlanın.
SSH kullanarak bağlanın
-
Genel ağ erişimi
Yerel komut satırınızdan veya başka bir terminalden, 1. Adımdaki genel erişim yöntemini kullanarak DSW örneğine bağlanın.
ssh root@xx.xx.xx.xx -p 1024 # If the private key is not in the default path, specify the key location ssh -i /your/path/example_rsa root@xx.xx.xx.xx -p 1024ÖnemliYukarıdaki komutlarda
-pparametresi SSH için yapılandırılan genel erişim bağlantı noktasını belirtir. Bu örnekte bağlantı noktası 1024'tür. -
VPC erişimi
VPC içindeki başka bir terminalden (örneğin bir ECS örneğinden), 1. Adımdaki VPC erişim yöntemini kullanarak DSW örneğine bağlanın.
ssh root@dsw-notebook-xxxx.dsw-xxxx.dsw.pai.alibaba.com -p 22 # If the private key is not in the default path, specify the key location ssh -i /your/path/example_rsa root@dsw-notebook-xxxx.dsw-xxxx.dsw.pai.alibaba.com -p 22
Yerel VS Code'dan bağlanın
-
VS Code'u açın ve Extensions görünümünden Remote - SSH uzantısını yükleyin.
Yükleme tamamlandıktan sonra Command Palette'i açın,
remote-sshgirin ve uzaktan bağlantıyı başlatmak için Remote-SSH: Connect to Host... komutunu seçin. Remote-SSH iletişim kutusunu açmak için sol alt köşede bulunan
simgesini tıklayın ve ardından Connect to Host... > Add New SSH Host... seçeneklerini belirleyin.-
SSH bağlantı komutunu girin.
ssh root@xx.xx.xx.xx -p 1024 # If the private key is not in the default path, specify the key location ssh -i /your/path/example_rsa root@xx.xx.xx.xx -p 1024 Sağ alt köşede bulunan Open seçeneğini tıklayın. Bağlantı durumu sol alt köşede görünür.
-
Uzaktan geliştirme ve hata ayıklamayı başlatmak için DSW örneğinde bir dizin açın.
Soldaki etkinlik çubuğundaki Explorer simgesini tıklayın, Open Folder düğmesini tıklayın, Open File or Folder iletişim kutusunda
/mnt/workspacegirin ve dizini açmak için OK düğmesini tıklayın. -
Kodu çalıştırmak için DSW örneğindeki bir kernale bağlanın.
VS Code'un üst kısmındaki Select a Jupyter Kernel açılan listesinde önerilen Python 3 (ipykernel) kernelini seçin.
-
Senaryo: Yerel notebook'u DSW örneğinde çalıştırma
Önkoşullar
Doğrudan SSH bağlantısını yapılandırmak için bu konudaki 1 ile 4 arasındaki adımları tamamlayın. SSH anahtar çiftini oluştururken parolayı boş bırakın.
Yordam
-
Yerel terminalinizden remote_ikernel'i yükleyin ve uzak bir kernel ekleyin.
pip install remote_ikernelremote_ikernel manage --add \ --kernel_cmd="ipython kernel -f {connection_file}" \ # No changes required --name="Remote Python" \ --interface=ssh \ --host=root@*.*.*.*:1024 # Replace this with your host address. If the private key is not in the default path, use --host="-i /your/path/example_rsa root@*.*.*.*:1024"Aşağıdaki mesaj görünürse uzak kernel eklenmiştir.
Added kernel ['rik_ssh_root_121_40_*_*_1024_remotepython']: SSH root@121.40.*.*:1024 Remote Python.Uzak kernel yapılandırmasını görüntülemek için aşağıdaki komutu çalıştırın:
remote_ikernel manage --show Yerel makinenizdeki VS Code'da bir notebook dosyası açın ve sağ üst köşedeki kerneli değiştirin. Remote Python öğesini arayın ve seçin.
SSS
S: Doğrudan SSH bağlantısı ile ProxyClient vekil sunucusu arasındaki farklar nelerdir?
S: Bir DSW örneğine bağlanırken SSH bağlantı hatalarını, zaman aşımlarını veya anahtar reddetmelerini nasıl gideririm?
Sorunu kategoriye göre giderin:
-
Genel ağ bağlantı hataları
Güvenlik grubunun gelen kurallarının, istemci IP adresinizden TCP bağlantı noktası 22 üzerindeki trafiğe izin verdiğinden emin olun.
VPC'de birden çok Internet NAT ağ geçidi varsa NAT ağ geçitleri, vSwitch'ler ve yönlendirme tabloları arasındaki yönlendirme ilişkilerini kontrol etmek için bkz. Yüksek kullanılabilirlik için tek AZ'li NAT ağ geçitlerini dağıtma.
Yalnızca bir NAT ağ geçidi varsa ağ bağlantısını analiz etmek için kendine hizmet sorun giderme aracını kullanın.
-
VPC bağlantı hataları
İstemcinin ve DSW örneğinin aynı VPC'de olduğundan emin olun. DSW örneğinin VPC etki alanı adının DNS çözümlemesini test etmek için
digkomutunu çalıştırın.NXDOMAINdöndürülürse DNS çözümlemesi çalışmıyor demektir. VPC'nin özel DNS ayarlarını kontrol edin.Özel bir görüntü kullanıyorsanız SSH hizmetinin yüklü ve çalışır durumda olduğundan emin olun. Daha fazla bilgi için bkz. Adım 4: SSH sunucusunu yükleyin.
Güvenlik grubunun gelen kurallarının TCP bağlantı noktası 22 üzerindeki trafiğe izin verdiğinden emin olun.
Ayrıntılı bağlantı bilgilerini almak için
ssh -v root@IP -p portkomutunu çalıştırın.Connection timed outhatası bir güvenlik grubu veya ağ bağlantısı sorununu gösterir.Connection refusedhatası bağlantı noktasının dinlemediğini (sshd'nin çalışmadığını) gösterir.Connection resethatası bir kimlik doğrulama sorununu gösterir.
-
Anahtar reddetme (Permission denied)
Genel anahtarın (
id_rsa.pubdosyasının tüm içeriği) DSW örneğinin SSH yapılandırmasına eklendiğinden emin olun.SSH komutunda kullanılan özel anahtarın genel anahtarla eşleştiğinden emin olun. Özel anahtar varsayılan yolda (
~/.ssh/id_rsa) değilse-iparametresini kullanarak belirtin.~/.ssh/authorized_keysdosyasının izinlerinin 600 olup olmadığını kontrol edin. Doğrulamak içinls -l ~/.ssh/authorized_keyskomutunu çalıştırın. Yanlış izinler SSH'nin genel anahtarı reddetmesine neden olur.
-
VS Code bağlantı hataları
Remote - SSHuzantısının yüklü olduğundan vessh root@xx.xx.xx.xx -p 1024gibi eksiksiz bir SSH komutu girdiğinizden emin olun.Bağlantıyı yerel bir terminalde SSH komutunu çalıştırarak test edin. Temel bağlantı çalıştıktan sonra VS Code yapılandırmasını kontrol edin.
Var olmayan bir pipe ile ilgili bir hata oluşursa VS Code'u yeniden başlatın veya Remote - SSH uzantısını yeniden yükleyin.
S: PyCharm gibi yerel bir IDE kullanarak bir DSW örneğine uzaktan bağlanabilir miyim?
SSH protokolüne dayalı tüm özellikler desteklenir. PyCharm kullanarak bağlandığınızda PyCharm, sunucu tarafı bileşenlerini DSW örneğine otomatik olarak indirir ve yükler. Bu nedenle DSW örneğinin genel ağ erişimine sahip olması gerekir.
S: Bir örneğin genel IP adresini nasıl görüntülerim?
Bir Internet NAT ağ geçidi yapılandırıldıysa genel IP adresini görüntülemek için şu adımları izleyin:
S: Bir DSW örneği ayrı SSH oturumlarıyla birden çok kullanıcıyı destekler mi?
Varsayılan olarak bir DSW örneği SSH oturumları için yalnızca root kullanıcısını sağlar. DSW, yalıtılmış SSH oturumlarına sahip birden çok bağımsız kullanıcı oluşturmayı desteklemez. Örnek içinde ek kullanıcılar manuel olarak oluşturabilirsiniz ancak bu resmi olarak desteklenen bir uygulama değildir.
S: VS Code veya PyCharm gibi yerel bir IDE'den bir DSW örneğine bağlandığımda neden çalışma alanı dosyalarını göremiyorum?
Bir SSH oturumu açtıktan sonra varsayılan dizin root kullanıcısının ev dizini (/root) olabilir. Çalışma alanı dosyaları genellikle bağlı veri diskindeki bir dizinde (örneğin /mnt/workspace) saklanır. VS Code'da doğru çalışma dizinini açmak için File > Open Folder seçeneklerini belirleyin.
İlgili Konular
Bu yöntem senaryonuza uygun değilse veya ek ağ bileşenleri yapılandırmak istemiyorsanız uzaktan bağlanmak için ProxyClient kullanın.
VPC adını, IPv4 CIDR bloğunu ve vSwitch bilgilerini yapılandırın. Diğer parametreleri varsayılan değerlerinde bırakın ve VPC ile vSwitch'i oluşturmak için OK düğmesini tıklayın.



