Mac'imde yalnızca 1 kullanıcı için ssh-key-key giriş yapmayı etkinleştir


21

Uzaktan SSH'nin parola olmadan erişmesine izin vermek istediğim bir Macbook Air var. Giriş yaptığım remotepairve Mac ile kullanabileceğimi doğruladığım bir kullanıcı oluşturdum . Ayrıca bu kullanıcıyı "Giriş Kaldır" hizmetinin izin verilen kullanıcı listesine ekledim ve hizmeti açtım. Bütün bunlar "Paylaşma" kontrol panelinde yapıldı.

Başka bir bilgisayarın ortak anahtarını aldım ve dosyaya ekledim /Users/remotepair/.ssh/authorized_keys. Diğer bilgisayar ne zaman ssh remotepair@<my ip>hala bir şifre istemi alıyorum.

Bu parola istemini nasıl devre dışı bırakırım?


1
Soru başlığınıza "Yalnızca SSH Anahtarlı Kimlik Doğrulaması" eklemenizi öneririm - okuduğu şekilde normal bir GUI oturum açma penceresi girişi gibi geliyor.
NReilingh

Yanıtlar:


27

Parola doğrulamasını devre dışı bırakmak için düzenlemelisiniz /etc/sshd_config. İçinde Terminal:

sudo vim /etc/sshd_config

(veya favori editörünüzle değiştirin)

Çizgiyi ara:

#ChallengeResponseAuthentication yes

Ve şuna değiştir:

ChallengeResponseAuthentication no

Olduğunu, kaldırmak #başında ve değişiklik yesiçin no.

Sonraki tüm ssh girişleri şimdi bir ssh anahtarı kullanmanız GEREKTİRECEK ve bir şifre sormayacak. Yerel erişiminiz yoksa, bunu yapmadan önce ssh anahtarınızın çalıştığından emin olun! Her yeni gelen bağlantı için talep üzerine başlatıldığından ssh arka planını veya herhangi bir şeyi yeniden başlatmaya gerek yoktur. Ayrıca bir PasswordAuthenticationçizgi görebileceğinizi , ancak bu nozaten varsayılan ayar olduğunu unutmayın .

Eğer ssh anahtarlarınız çalışmıyorsa, o zaman bu gerçekten ayrı bir konudur, ancak bu şimdi olduğu gibi soruyu cevaplar :)


Ayrıca kullanıcıyı AllowUser ayarına eklemem gerekiyor. GUI kurulumunun da bu metin satırında değişiklik yapmadığını tahmin edebiliyorum.
Jason,

7
Mac OS X'in daha sonraki sürümlerinde (kesinlikle El Capitan'da), sshd_config'ın taşındığını unutmayın /etc/ssh/.
zelk

2
MacOS Sierra'dan itibaren (v10.12.x), varsayılanın olarak PasswordAuthenticationdeğiştiğini yes, bu yüzden değiştirdiğinizden emin olun no.
Travis Clarke,

3

MacOS Sierra (özellikle 10.12.6) için cevabı güncellemek için, yapılandırma dosyası şimdi görünüyor /etc/ssh/sshd_config

Parola doğrulamasını tamamen devre dışı bırakmak için 2 satır belirtilmemiş + değiştirilmiş olmalıdır: (Bunlar varsayılan sshd_configdosyada dahil olmak üzere 57 ila 62 numaralı satırlardır )

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

Daha önce belirtildiği gibi, ssh erişimini System Preferences.app GUI'den etkinleştirebilir / devre dışı bırakabilirsiniz ve yapılandırmayı düzenlemek için arka plan programı yeniden başlatılması gerekmez.


1

İlgili dizinlerin izinlerini kontrol etmelisiniz: /Users/remotepair/ve /Users/remotepair/.ssh"diğer" kullanıcılar tarafından yazma erişimine izin vermemeliler. Benim .sshsahipimin yalnızca sahibi için erişim hakkı var.

Ayrıca, uzaktaki sistemde, ssh -v remotepair@yoursystemhangi yetkilendirme yöntemlerine izin verilip verilmediğini görmek için bir işlem yapın. Arayın Authentications that can continue: publickey,password,keyboard-interactive. Belki de RSAAuthenticationsisteminizi etkinleştirmelisiniz .


1

Buradaki bir test sisteminde, SSH isteminin devre dışı bırakılması, aşağıdaki iki satırın eklenmesini gerektirmiştir /etc/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no

Yorumlar sshd_configayrıca şu satırın eklenmesini de tavsiye eder:

UsePAM no
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.