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


104

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

  • Yeni bir kullanıcı oluşturun ( jimbunun kalanını arayalım ). Bir /home/dizine sahip olmalarını istiyorum .
  • jimSSH'ye erişim verin .
  • İzin jimiçin sukök fakat yapmayacak şekilde sudoişlemleri.
  • Root SSH erişimini kapatın.
  • Kaba saldırıları durdurmak için SSHd'yi standart olmayan bir bağlantı noktasına getirin.

Benim sorunum ilk iki maddeden kaynaklanıyor. Zaten buldum useraddama bir sebepten dolayı, SSH üzerinden oluşturulan kullanıcı olarak giriş yapamıyorum. Buna izin vermek için SSHd'yi geçmem gerekir mi?


Selam! Sunucularda yardımcı olabilirim, SSH ile sorununuz nedir bilmiyorum, çünkü benim için varsayılan yapılandırma ile bağlantım asla reddedilmez. 5 nologin adamı görüyorsunuz , bu yazıyor, / etc / nologin varsa, sadece root ile giriş yapabilirsiniz. Normal olarak giriş yapmayı deneyin, ardından sonuçları yazın.
antivirtel

Kullanıcının kabuğu ne? / Bin / bash mı? Bunu / etc / password içinden kontrol edin. / Dev / null veya / bin / false olmadığından emin olun.
LFC_fan

Evet, LFC_fan veya / etc / nologin de. Kullanımı (sudo) kedi / etc / passwd | grep jim
antivirtel

1
@B. Roland Bir dosyam var /etc/nologinama boş. Onu sildim ve ssh'yi yeniden başlattım ama hala Permission denied, please try again.giriş yapmaya çalıştığımda yanıt veriyor .
Oli

O / bin / bash var @LFC_fan
Oli

Yanıtlar:


99

Düzenleyin (kök olarak) /etc/ssh/sshd_config. Aşağıdakini buna ekleyin:

Port 1234
PermitRootLogin no
AllowUsers jim

Port 1234SSH'nin 1234 numaralı bağlantı noktasını dinlemesine neden olur. Kullanılmayan herhangi bir bağlantı noktasını 1 ile 65535 arasında kullanabilirsiniz. Yalnızca kök tarafından kullanılabilen ayrıcalıklı bir bağlantı noktası (bağlantı noktası 1-1024) seçmeniz önerilir. SSH arka plan planınız bir nedenle çalışmayı bırakırsa, sahte bir uygulama bağlantıyı kesemez.

PermitRootLogin doğrudan kök girişine izin vermez.

AllowUsers jimkullanıcının jimSSH ile giriş yapmasına izin verir . Her yerden giriş yapmanız gerekmiyorsa, jim'i bir IP adresi ile sınırlandırarak bunu daha güvenli hale getirebilirsiniz (1.2.3.4'ü gerçek IP adresinizle değiştirin):

AllowUsers jim@1.2.3.4

Yapılandırma dosyasındaki değişiklikler, yapılandırmayı /etc/ssh/sshd_configyeniden yüklemek için hemen uygulanmaz

sudo service ssh reload

10
+1: Not: Bu talimatlar hala Ubuntu'nun daha yeni sürümleri için geçerlidir (örneğin 13.04). İstediğiniz yaparsanız root, giriş Ancak (belki hala sunucuyu kuruyoruz), ayarlamanız gerekir PermitRootLoginetmek yesve ayrıca eklemek rootiçin AllowUsers.
JRG-Developer

4
bu kullanıcı için şifre nedir?
Wolfpack'08

VPS'im, 22 numaralı bağlantı noktasında SSH oturumu için bir root şifresiyle birlikte geliyor. Sshd_config'e cevabın girilmesi root ile oturum açamamaya neden oluyor. Bunun nedeni port 22'yi jim için kullandığımdan mı, yoksa başka bir neden mi var?
Wolfpack'08,

1
@Lekensteyn Sadece Ubuntu'ya yeni bir kullanıcı eklerken o kullanıcı için bir ssh hesabı oluşturduğumu gördüm .... useradd -m -G sudo,adm -s /bin/bash mecharokvepasswd mecharok
Wolfpack'08

3
@ Wolfpack'08 AllowUsers username1,username2SSH girişlerini bu kullanıcılarla sınırlamak için kullanın . Bunun sshdyeniden yüklendiğinden emin olun . Bu işe yaramazsa, lütfen yeni bir soru oluşturun.
Lekensteyn

96

SSH, dizin ve dosya izinleri konusunda çok seçicidir. Emin olun:

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

Genel anahtarınızı yetkili_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

Orada YOK / etc / ssh / ssh_config için kullanıcı eklemek ihtiyacı.


1
Benim sorunum boğuldu, ~./sshkök olarak yarattım ve hiçbir zaman kullanıcıya sahip olmadım .
Gerve

1
Benim sorunum /root/.ssh/authorized_keysyerine kullanmaya çalışıyordum /home/bob/.ssh/authorized_keys.
Alex W,

Onaylayabilirim: bizim VPS ev sahibimizde düzenlemeye gerek yoktu ssh_config. Bu dizini ve dosyayı ayarlamak yeterliydi.
superjos,

2
Benim için chmod 755 / home / kullaniciadi/.ssh olması gerekiyordu, aksi halde işe yaramazdı.
Jim W

Kullanıcı (veya sudo su --login {user}) olarak giriş yapmak ve çalıştırmak ssh-keygen-> ".ssh" klasörü, anahtar + sertifika ve izinler tamamlanmıştır. Sadece talimatlarınıza göre onaylanmış anahtarlar oluşturun.
bshea

13

/var/log/auth.logSSH (veya PAM) 'in giriş yapma girişimini neden reddettiği konusunda ipuçları olacak . Ssh istemcisi -vile seçenek kullanılarak ek ipuçları bulunabilir . Bazı ortak durumlar, bazıları diğer cevaplarda belirtilmiştir:

  • kullanıcı hesabında parola yoksa veya devre dışı bırakılmışsa (bkz man passwd. parolayı sıfırlamayı veya içeriğini kontrol etmeyi deneyin /etc/shadow).
  • /etc/ssh/sshd_configgiriş izin vermeyecek şekilde yapılandırıldığı ( DenyUsers, AllowUsers, PasswordAuthentication, PubkeyAuthentication, UsePAMvb bakınız man sshd_config).
  • kullanıcının kabuğu listelenmemiş /etc/shells.
  • : SSH çalışmasıyla ilgili dizinler veya dosyalar üzerinde çeşitli izni sorunları /etc/ssh, /home/jim/.ssh, /home/jim/.ssh/*vb

Yeni kullanıcılar eklemek için adduser ( useradd yerine ) kullanmanızı öneririm ; çeşitli varsayılan hesap ayarları hakkında biraz daha kolay.

Kullanıcı admingrubun bir parçası olmadığı sürece , kök dizginlenemez . Onları kullanmak için Herhangi yüzeylerin , bir kök şifre (ayarlamanız gerekir passwd rootben ayarı öneriyoruz bundan sonra), PermitRootLogin=noiçinde /etc/ssh/sshd_config.


Harika cevaplar için çok teşekkürler - özellikle "adduser" çok yardımcı oldu!
vishal.biyani 21:13

11

Yanılıyor olabilirim ancak bağlanabilmem için önce sunucu arka planını yüklemem gerekiyor (En azından masaüstünde) ssh varsayılan olarak yüklendi, ancak bu yalnızca istemci

bu komut sunucuyu yükler

sudo apt-get install openssh-server

Bağlantı noktasını değiştirebilir ve kök girişini durdurarak düzenleyebilirsiniz.

/etc/ssh/sshd_config

Bu, hizmeti yine de başlatmanızı gerektirir.

sudo service ssh restart


Bu bir sanal sunucudur (VPS), böylece SSH varsayılan olarak kurulur. Bu benim sunucuya olan tek arayüzüm. Ve sudo /etc/init.d/ssh reloadbunun yerine yapılandırmayı yeniden yükleyebilirsiniz , ancak yine de iyi bilgiler.
Oli

8

Siz bir şifre belirleyene kadar Jim, SSH erişimine sahip olmayacak. Kök yürütmek için:

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

Bu komut bir "!" Verirse karakter sonra giriş bu hesap için devre dışı bırakıldı. passwd jimKök olarak çalıştırmanız , sizden yukarıdaki grep komutunun jim için parolayı temsil eden karma bir dize döndürmesi gereken yeni ve onaylanmış bir parola dizesi ister.

Ayrıca, jim'in varsayılan olarak ayarlanmış bir giriş kabuğu ve var olan bir giriş dizini olduğundan emin olun.

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


"Bu komut"! "Karakterini döndürürse, bu hesap için oturum açma etkisizleştirilir" Bu not SSH olamayacağınız anlamına gelmez; yalnızca bir parola ile yapamayacağınız için (vs. ortak anahtarınızla).
bfontaine

3

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

Yukarıdaki örneği kullanıcı ile birlikte kullanarak ve jimgrubun üyesini jimyalnızca grup olarak kabul edin ( parçası olduğunuz grupları bulmak için groupsoturum açarken verilen komut jim). Benim içinde /etc/ssh/sshd_configdosyanın vardı AllowGroups sshusersgirişi ve böylece eklemek için gerekli jimiçin sshusersgrubun. Aşağıda, bunun nasıl başarılacağı açıklanmaktadır:

usermod -a -G sshusers jim

Grubunuzu ve kullanıcıyı yapılandırmanıza uygun olarak değiştirin.


1
Örneğinizi daha iyi açıklayan bir kaynağa başvurarak veya örneğinizi OP'nin orijinal sorusuna dayandırmak için ilgili bilgiler ekleyerek cevabınızı iyileştirmelisiniz. örneğin, jimbağlam sağlamaya yardımcı olmak için sahte bir kullanıcı olarak belirtilen kullanıcı. Buradaki yazı iyi açıklar.

0

PasswordAuthenticationVarsayılan olarak devre dışı bırakılmış bazı durumlar olabilir .

Lütfen niteliğin ayarlandığından /etc/ssh/sshd_configemin olun ve kontrol edin .PasswordAuthenticationyes


0

@Lekensteyn Soruya cevap bırakamıyorum çünkü itibarım yok - ama eklemeye çalıştım

AllowUsers existingUser,newUser

/ etc / ssh / sshd_config dosyama ve şimdi artık hem mevcutUser hem de newUser ile ssh yapamıyorum.


Acını anlıyorum: DI bir zamanlar aynı sorunu yaşadı. Çözüm:AllowUsers existingUser@* newUser@*
İsmail Atkurt
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.