Ubuntu Sunucusunda yeni bir SSH kullanıcısı oluşturun

81

Yeni bir sanal Ubuntu sunucusu oluşturdum ve üretim için sertleştirme sürecindeyim. Şu anda bir kök hesabı var. Aşağıdakileri yapmak istiyorum:

  • Yeni bir kullanıcı oluşturun (bunun geri kalanı için onları jim olarak adlandırın). % Co_de% dizinine sahip olmalarını istiyorum.
  • /home/ SSH erişimini ver.
  • jim 'sini jim ' ye root yap ama su işlemini gerçekleştirme.
  • Kök SSH erişimini kapat.
  • Brüt saldırıların durdurulmasına yardımcı olmak için SSHd'yi standart olmayan bir bağlantı noktasına taşıyın.

Sorunum ilk iki öğeyle ilgili. Zaten sudo buldum ama bir nedenden dolayı, SSH üzerinden onunla oluşturulan bir kullanıcı olarak giriş yapamıyorum. Buna izin vermek için SSHd'yi yenmem gerekiyor mu?

    
sordu Oli 08.12.2010 17:01

7 cevap

83

Düzenle (root olarak) /etc/ssh/sshd_config . Aşağıdakilere ekleyin:

Port 1234
PermitRootLogin no
AllowUsers jim

Port 1234 SSH bağlantı noktası 1234'ü dinlemesine neden olur. Kullanılmayan bir bağlantı noktasını 1'den 65535'e kadar kullanabilirsiniz. Yalnızca kök tarafından kullanılabilecek ayrıcalıklı bir bağlantı noktası (1-1024 numaralı bağlantı noktası) seçilmesi önerilir. SSH sunucunuz bir nedenle çalışmayı durdurursa, haydut bir uygulama bağlantıyı kesemez.

PermitRootLogin doğrudan root girişine izin vermiyor.

AllowUsers jim , kullanıcının jim 'sinin SSH üzerinden giriş yapmasına izin veriyor. Her yerden giriş yapmanız gerekmiyorsa, bunu bir IP adresine kısıtlayarak (1.2.3.4'ü gerçek IP adresinizle değiştirin) bunu daha güvenli hale getirebilirsiniz:

AllowUsers [email protected]

Yapılandırma dosyasını yeniden yüklemek için /etc/ssh/sshd_config yapılandırma dosyasında yapılan değişiklikler hemen uygulanmıyor:

sudo service ssh reload
    
verilen cevap Lekensteyn 08.12.2010 18:57
61

SSH, dizin ve dosya izinleri konusunda çok seçici. Şunlardan emin olun:

  1. /home/username/.ssh dizini "700" izne sahiptir ve kullanıcıya aittir (root değil!)
  2. / home / username / ssh / authorized_keys "600" iznine sahiptir ve kullanıcıya aittir

Ortak anahtarınızı authorized_keys dosyasına kopyalayın.

sudo chown -R username:username /home/username/.ssh
sudo chmod 0700 /home/username/.ssh
sudo chmod 0600 /home/username/.ssh/authorized_keys

Kullanıcıyı / etc / ssh / ssh_config dosyasına eklemeniz gerekiyor NO .

    
verilen cevap dh1tw 01.03.2014 18:32
10

SSH (veya PAM) giriş girişimini neden reddettiğine ilişkin /var/log/auth.log ipucunda ipuçları olacaktır. Ek ipuçları, ssh istemcisiyle -v seçeneği kullanılarak bulunabilir. Bazı ortak durumlar, bazıları diğer cevaplarda belirtilmiştir:

  • kullanıcı hesabında şifre yok veya başka bir şekilde devre dışı bırakılmış (bkz. man passwd , şifreyi sıfırlamayı veya /etc/shadow içeriğini kontrol etmeyi deneyin).
  • /etc/ssh/sshd_config girişe izin vermeyecek şekilde yapılandırıldı ( DenyUsers , AllowUsers , PasswordAuthentication , PubkeyAuthentication , UsePAM vb., man sshd_config bakın).
  • Kullanıcının kabuğu /etc/shells dizininde listelenmiyor.
  • SSH işlemi ile ilgili dizinlerde veya dosyalarda çeşitli izin sorunları: /etc/ssh , /home/jim/.ssh , /home/jim/.ssh/* , vb.

Yeni kullanıcılar eklemek için adduser ( useradd yerine) kullanmanızı da öneririz. çeşitli varsayılan hesap ayarları hakkında biraz daha arkadaş canlısı.

Kullanıcı admin grubunun parçası olmadığı sürece, root için sudo yapamazlar. su 'yı kullanabilmeleri için, bir root parolası ( passwd root ) ayarlamanız gerekir. Bunun ardından, PermitRootLogin=no değerini /etc/ssh/sshd_config olarak ayarlamanızı öneririm.

    
verilen cevap Kees Cook 11.12.2010 08:15
10

Yanılıyor olabilirim ama bağlanabilmem için sunucu sunucu programını her zaman yüklemem gerekiyor (En azından masaüstü bilgisayarlarda) ssh varsayılan olarak yüklenmiştir, ancak bu sadece müşteridir

bu komut sunucuyu yükler

sudo apt-get install openssh-server

Bağlantı noktasını değiştirebilir ve düzenleyerek root girişini durdurabilirsiniz

/etc/ssh/sshd_config

Bu, hizmeti tekrar başlatmanızı gerektirir.

sudo service ssh restart

    
verilen cevap Matt Mootz 08.12.2010 17:48
7

Bir şifre belirleyene kadar Jim'in SSH erişimi olmaz. Kök yürütme:

grep -i "jim" /etc/shadow | awk -F':' '{ print  }'

Bu komut bir "!" döndürürse karakter, bu hesap için giriş devre dışı bırakıldı. Kök olarak passwd jim yürütülmesi, yeni ve onaylanmış bir parola dizesi için sizi yönlendirecektir, ardından yukarıdaki grep komutu, parola parolasını temsil eden bir hashed dizesini döndürmelidir.

Ayrıca, jim’ın varsayılan olarak ayarlanmış bir giriş kabuğunun ve var olan bir giriş dizininin olduğunu doğruladığınızdan emin olun.

Lütfen SSH sunucu ayarlarını değiştirmeyle ilgili bilgi için lekensteyn'in gönderisine dikkat edin.

    
verilen cevap Tok 08.12.2010 19:24
2

Benim durumumda, erişime izin verilen bir grup vardı ve kullanıcı bunun bir parçası değildi. Bu benim için çözdü.

Yukarıdaki örnekle jim kullanıcısını kullanarak ve jim grubunun üyesini yalnızca grup olarak kabul ettiniz (bir parçası olduğunuz grupları bulmak için groups olarak oturum açarken jim komutunu yazınız). % Co_de% dosyamda /etc/ssh/sshd_config girdim vardı ve bu nedenle AllowGroups sshusers 'yi jim grubuna eklemek gerekiyordu. Bunun nasıl başarılacağı şöyle:

usermod -a -G sshusers jim

Grubunuzu ve kullanıcınızı yapılandırmanıza uygun şekilde değiştirin.

    
verilen cevap Joshua Fricke 13.02.2018 01:22
0

PasswordAuthentication 'nin varsayılan olarak devre dışı bırakıldığı bazı örnekler olabilir.

Lütfen /etc/ssh/sshd_config değerini kontrol edin ve PasswordAuthentication özniteliğinin yes olarak ayarlandığından emin olun.

    
verilen cevap Aldee 24.08.2017 17:05

Etiketlerdeki diğer soruları oku