Önyükleme sırasında SSH'yi otomatik olarak başlat


15

Linux ve Ubnuntu için tamamen yeni. Derin öğrenme / sinir ağları yapmak için bir makine kurulması. Şimdiye kadar iyi gidiyor. Yüklü ve çalışıyor her şey var. Sistemi kullanmak için Mac dizüstü bilgisayarımdan ssh yapabilmek istiyorum. Openssh'i kurdum ve çalıştım .

Ancak makineyi yeniden başlattığımda, ssh sunucusu yeniden başlamıyor. Ben kontrol sudo service ssh statusve raporlar ve hata. Sonra başlayabilirim ve her şey yolunda gidiyor.

İlk düşüncem, yeniden başlatmaya başlamak için söylemem gerekiyordu ve varsayılan olarak başlaması gerektiğini söyleyen bu iş parçacığını buldum ve bir chrontab veya bunun gibi bir şey eklemeye gerek yok. Bu yüzden sanmıyorum.

Sonra komut kullanarak önermek bu iş parçacığı bulundu sudo update-rc.d ssh defaults, ama bu iş parçacığı oldukça eski ve cevap belki o zaman bile doğru değil gibi görünüyor?

Sonra sshd_config dosyasında satır yorum öneren bu iş parçacığı bulundu . Temel olarak, ListenAddress kullanılırsa, IP'yi DCHP tarafından atanmadan önce almaya çalışabilir ve bu nedenle başlatma başarısız olur. Bu mantıklı. Ancak port yönlendirmemin ev ağım üzerinden çalışabilmesi için bu parametreye ihtiyacım var.ListenAddress

ListenAddress girişi altındaki bu belgeler diyor ki

The default is to listen on all local addresses.

O halde belki de port yönlendirmenin çalışması için ona ihtiyacım yok?

Oldukça eski olan bu hata raporunun önceki iş parçacığını takip ettim , ancak netmanager her yeni IP aldığında ssh'yi yeniden başlatmak için ağ yöneticisini kullanmanızı önerir.

echo /etc/init.d/ssh restart > /etc/NetworkManager/dispatcher.d/10ssh
chmod 755 /etc/NetworkManager/dispatcher.d/10ssh

Bu, bu noobie'nin bu noktada değerlendirebileceğinden çok daha fazlası. Bu güvenli mi? Bunu yapmanın yolu bu mu? Son 7 yılda başka bir şey yapıldı mı?

Herhangi bir tavsiye harika olurdu. Teşekkürler.


Vay canına, openssh-server paketini kurdum ve doğru şekilde yapılandırdım. Ssh sunucum o zamandan beri otomatik olarak düzgün bir şekilde başladı. Hiçbir ekstra uğraşmaya gerek yok.
user535733 13:17

1
Bağlantı noktası yönlendirme mi kullanıyorsunuz ve ListenAddress parametresini kullanmanız gerekmiyor mu? Öyleyse, "doğru şekilde yapılandırılmış" öğesinin neler içerdiğini paylaşabilir misiniz?
Rothrock

Tüm bunlar için, ilk açılışta SSH'nin durumu hakkında herhangi bir bilgi sağlamadınız. Neyi systemctl status sshçıktı?
muru

Sorununuz buna benziyor (görünüşte çözülmemiş) SSH Daemon normal şekilde başlamıyor - lütfen sorunuzu düzenleyebilirsystemctl status NetworkManager-wait-online.service
steeldriver

1
Bağlantı noktası yönlendirme kurulumunuz nasıl? ListenAddress'i hiç kullanmıyorum ve ev sunucumda işler düzgün çalışıyor. Yönlendiricim, belirttiğim bir bağlantı noktasında gelen her şeyi (standart bağlantı noktasını istiyorsanız 22, ancak uluslararası ağınızdaki diğer hizmetlerle çakışmadığı sürece herhangi bir şeyi kullanabilirsiniz) istediğim bilgisayara iletir. Örneğin 12345 numaralı bağlantı noktasında gelen her şey CentOS sunucumdaki bağlantı noktası 22'ye yönlendirilir. 12346'da gelen her şey başsız RasPi'imin 22 numaralı bağlantı noktasına iletilir. 12347'de gelen her şey RasPi'mdeki IRC bouncer için 6697 numaralı bağlantı noktasına gider.
RobertRSeattle

Yanıtlar:


43

Sadece ayarlamayı denedin mi

sudo systemctl enable ssh

?

Ssh cihazımı başlangıçta çalıştıracak şekilde ayarladım.

**** Bu yazıyla karşılaşan diğerleri için yararlı olması durumunda cevabın yukarıdaki kısmında ayrılıyorum ****

Yukarıdaki yorumumdan alıntı yapılıyor:

Bağlantı noktası yönlendirme kurulumunuz nasıl? ListenAddress'i hiç kullanmıyorum ve ev sunucumda işler düzgün çalışıyor. Yönlendiricim, belirttiğim bir bağlantı noktasında gelen her şeyi (standart bağlantı noktasını istiyorsanız 22, ancak uluslararası ağınızdaki diğer hizmetlerle çakışmadığı sürece herhangi bir şeyi kullanabilirsiniz) istediğim bilgisayara iletir. Örneğin 12345 numaralı bağlantı noktasında gelen her şey CentOS sunucumdaki bağlantı noktası 22'ye yönlendirilir. 12346'da gelen her şey başsız RasPi'imin 22 numaralı bağlantı noktasına iletilir. 12347'de gelen her şey RasPi'mdeki IRC bouncer için 6697 numaralı bağlantı noktasına gidiyor

ListenAddress'in bağlantı noktası ilerlemesi ile ilgisi yoktur, ListenAdress bir veya daha fazla NIC üzerinden birden çok IP adresiyle yapılandırılmış bir sunucu için kullanılabilir. Buradan alıntı yapmak (tüm sayfa iyi bir açıklamadır): https://www.cyberciti.biz/tips/howto-openssh-sshd-listen-multiple-ip-address.html

Toplam 8 genel IP adresiniz ve bir özel IP adresiniz olduğunu varsayalım. Sshd'yi yalnızca bir seçili genel IP'ye (ör. 70.5.xx.xx) ve özel> IP'ye (10.1.5.1) bağlamak istiyorsunuz.

Neyse ki ListenAddress seçeneğini kullanarak bunu başarmanın kolay bir yolu var. > Sshd dosyasının dinlemesi gereken yerel adresleri belirtir. Bu yönerge> yapılandırma dosyasından atlanırsa, sshd kullanılabilir tüm IP> adreslerini bağlar veya listeler.

Birden fazla IP'nizden birinin ssh bağlantılarını kabul etmesine izin vermek içindir. ListenAddress'i genel IP'nize veya yönlendiricinizin dahili IP'sine ayarladığınızı tahmin ediyorum - bunu sunucunuzun yerel IP'sine ayarladıysanız iyi çalışır. Ne olursa olsun, artık ListenAddress'in nasıl çalıştığını biliyorsunuz ve daha karmaşık bir sunucu yapılandırmanız gerekiyorsa hazır olacaksınız. İşlerin bittiğini duyduğuma sevindim.


2
+1 Bu doğru cevap. Ubuntu 16.04, systemd kullanmaya başladı. Bu yanıttaki komut, yeniden başlatma sırasında SSH'yi başlatmak için systemd kullanıyor. OP'nin bağlandığı diğer iş parçacıkları sistemd için değil, yalnızca uptart için geçerlidir veya sorunlarına hiç uygulanmamıştır.
Sam Gleske

1
Systemctl list-unit-files –type = service yaptım ve ssh.service'in etkin olduğunu görüyorum. Bu yüzden sorun olduğunu sanmıyorum. Ancak systemctl / systemd üzerindeki ipucu için teşekkürler. Bu bana bakmak için daha fazla yer veriyor. DCHP IP adresini döndürene kadar systemd / systemctl'e beklemesini söylemenin bir yolu var mı?
Rothrock

Etkinleştirdikten sonra yeni bir dosya oluşturulmalıdır, kontrol edinls -l /etc/systemd/system/sshd.service
Timo

2

Önerilen çözüm benim için çalışmadığından, sonunda SSH'yi önyüklemede başlatmak için ek komutun gerekli olduğunu buldum:

sudo update-rc.d ssh defaults
sudo systemctl enable ssh.socket

Bazıları bu komuttan bahsetti:

sudo systemctl enable ssh.service

şu komut yerine yürütülmelidir:

sudo systemctl enable ssh

Ubuntu 18, hiçbiri işe yaramadı. Başka bir makineden ssh yapabilmek için bana GUI'den bir giriş gerekli.
deepdebugging
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.