SSH anahtarlarını kullanma ve şifre kimlik doğrulamasını devre dışı bırakma


12

Bir Linux istemci bilgisayardan SSH aracılığıyla bir Mac'e uzaktan erişmeye çalışıyorum (bu Mac'e fiziksel erişimim var). Amacım bu Mac'e ağın dışından erişmek. Bağlantı noktası iletme yönlendiricide ayarlanır. İstemci bilgisayarımdan ssh user@ipgenel IP için yapabiliyorum ve Mac'e girebiliyorum, bu yüzden port yönlendirme çalışıyor.

Şimdi SSH anahtarları ayarlamak istiyorum. İstemci bilgisayarımda SSH anahtarları oluşturdum ama önce Mac kurulumunda SSH Daemon'u almak istedim. Düzenledim /etc/ssh_configve ayarladım PasswordAuthentication no. SSH'yi şu komutlarla yeniden başlattım:, sudo launchctl unload /System/Library/LaunchDaemons/ssh.plistsonra sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist. SSH'yi istemciden tekrar denediğimde hala şifremi soruyor.

Ben bir göz attım bu yazı ve cevap dan ekledim UsePAM noyapılandırma dosyası ve birlikte hizmet yeniden launchctltekrar. Hala bir şifre girmem isteniyor.

Çözümü burada da denedim . Hala bir şifre girmem isteniyor.

ssh_configParolamı istemeyecek ve yalnızca SSH anahtarlarını kabul edecek şekilde nasıl ayarlayabilirim ? Daemon'u düzgün bir şekilde yeniden başlatmıyor muyum? Kaçırdığım başka bir adım var mı?

Yanıtlar:


13

Yanlış yapılandırma dosyasını düzenliyordum! Bunun yerine /etc/ssh_config, düzenledim private/etc/sshd_config. /etc/sshd_config@GhostLyrics'in güncellenmiş cevabına göre düzenlenmiş olsaydım, bu muhtemelen işe yarayacağını düşünüyorum, ancak bunu test etmedim, bu yüzden kesin olarak söyleyemem. Bundan sonra hizmeti yeniden başlattım sudo launchctl stop com.openssh.sshdve sonra sudo launchctl start com.openssh.sshdistediğim davranışı elde edebildim. İlgili bilgileri bulduğum kaynak: /superuser/364304/how-do-i-configure-ssh-on-os-x

Değiştirdiğim yapılandırma seçenekleri şunlardır:

PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no

Bundan sonra istemci bilgisayarımda başarıyla SSH anahtarları oluşturabildim, ortak anahtarı ~/.ssh/authorized_keysMac'e taşıdım ve bu dosya için izinleri 644'e ayarladım.

Bu izinlerin ortak anahtarım için olduğunu belirtmek önemlidir . Benim özel anahtar izinlerini müvekkilimin bilgisayarında 600 olarak ayarlanır. Bu gerçekten size hem genel ve özel anahtar varsa önemli ~/.sshklasörde ve sistemde birden fazla kullanıcı var. Senin Eğer özel anahtar izinlerini 644 olarak ayarlanır sonra herhangi bir kullanıcının özel anahtarı okuyabilir ve sizi taklit edebilir. Ayrıca, ~/.sshklasör izinleri 700 olmalıdır.


5
Dahili olarak, /etc/sshd_configve /private/etc/sshd_configaynı dosya bulunmaktadır. :)
GhostLyrics

8

/etc/ssh/ssh_configana dizininizde daha spesifik bir istemciniz yoksa kullanılan istemcinin yapılandırma dosyasıdır. Düzenlemek istediğiniz şey /etc/ssh/sshd_configsunucunun hangisi olduğudur.

Muhtemelen orada PermitRootLogin without-password(veya no) ayarlamak isteyeceksiniz PasswordAuthentication no.


Güncelleme: Yosemite çalıştırdığınız için dosya şu /etc/sshd_configcevaba göre: https://apple.stackexchange.com/a/167405/11135

Ayrıca To ayrıntılı neden hala istemleri ayarı PasswordAuthentication noiçinde /etc/ssh/ssh_configsize yapılandırılmış anlamak önemlidir. " SSH üzerinden giden bir bağlantı kurarken şifre doğrulaması sunmayın."


Benim /etc/ssh/ssh_configsadece bir /etc/ssh_config. Yosemite üzerinde koşuyorum. Ben çalıştım PasswordAuthentication noama yine de şifre için beni isteyen oluyor.
beznez

Ah, anlıyorum. İstediğim bu değil. Anahtarları ve şifresiz Linux istemcimden Mac'e SSH istiyorum. Gelen bağlantı için neyi değiştirmeliyim ?
beznez

/etc/sshd_configPasswordAuthentication no. Karışıklık için özür dilerim. Lütfen cevabı nasıl daha net hale getirebileceğimi bana bildirin. :)
GhostLyrics

Hala aynı davranışı alıyorum. Linux makinesinden Mac'e ssh yaptığımda benden şifre istiyor.
beznez

Sohbet sohbetinde buna
GhostLyrics
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.