SSH Kimlik Bilgileri Terminalde nasıl saklanır


33

MacBook'ta yeniyim ve El Capitan kullanıyorum.

Makine kullanımımı bir bilgisayardan MacBook'a geçiriyorum. PC'de uzun süredir PuTTY ve SuperPuTTY kullanıcısıyım.

Giriş bilgilerini (PC'de SuperPuTTY'de yaptığım gibi) MacBook Terminal'deki web sunucularına oluşturmak ve kaydetmek istiyorum.

Web sunucusu oturum açma kimlik bilgilerini Mac Terminaline kaydetmek mümkün müdür?

İşte Genel Amacım:

Mac Terminal'de aşağıdaki komut satırı oturum açma bilgilerini saklamanın ve ardından web sunucuma Terminal aracılığıyla bağlanmak için bir tür kısa kod kullanmanın kolay bir yolu olup olmadığını bilmek isterim:

ssh -p 2200 root@123.456.789.012
Password: ****************************************************************

5 farklı web sunucusunu yönetiyorum ve bağladım, bu yüzden giriş bilgilerini kısa / hızlı bir bağlantı yöntemiyle düzenlemek ve düzenlemek çok zaman kazandıracak. Özellikle şifrelerim şifreli 64 karakterli dizeler olduğundan.


Tammy'nin üçüncü versiyonunun üçüncü versiyonunun açıklık ve kullanışlılık açısından parkın dışına vurduğu için yorumları tasfiye ettim. Aferin!
bmike

Yanıtlar:


50

Genel anahtarınızı uzaktaki makinelere kopyalayabilirsiniz. Ortak anahtar kimlik doğrulaması etkin olduğu ve ortak anahtarınız uzaktaki makinede bulundukları sürece, sshbir şifre sağlamak zorunda kalmadan makinelere yapabilirsiniz.

Öncelikle şöyle bir kamu / özel keypair oluşturmanız gerekir:

ssh-keygen -t rsa

Komutları takip edin. Bir parola ile anahtarı korumak isteyip istemediğinizi sorduğunda YES! Anahtarlarınızı şifreyle korumamak kötü bir uygulamadır ve arada bir şifreyi nasıl girmeniz gerektiğini size göstereceğim.

Zaten tuş takımınız varsa, yukarıdaki adımı atlayabilirsiniz.

Şimdi, ssh anahtarınızın Mac'inizde bulunduğunu varsayarsak, ~/.ssh/id_rsa.pubçalıştırarak uzak bir makineye yükleyebilirsiniz:

cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

Yukarıda belirtilen belirli sunucu örneğiniz için komut şöyle görünür:

cat ~/.ssh/id_rsa.pub | ssh -p 2200 root@123.456.789.012 "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

root@123.456.789.012Bu kopyayı gerçekleştirmek için şifreyi girmeniz gerekecek , ancak bu en son yapmanız gereken şey bu olmalı. Uzak sunucunun sshdgenel-özel anahtar kimlik doğrulaması yapması gerektiğini varsayarsak, şimdi kutuya ssh gönderdiğinizde roothesap için bir parola sormamalı - bunun yerine sizden anahtarınızın şifresini isteyecektir . Her zaman girmeniz gerekmeyen bir şeyi nasıl yapacağınızı okuyun.

Parola yerine tuşlarınızla girmek istediğiniz her makine için yukarıdakileri tekrarlayın.

Unutmayın, dosyanızı ele geçiren herkes , uzaktaki makineye bir şifre vermeden ~/.ssh/id_rsa, bu makineye erişebilir root. Anahtar dosyasını koruyan parola, bu anahtarın kullanması için parolayı bilmeleri gerekir. Bu dosyanın güvenli olduğundan emin olun. Mac'inizde disk şifreleme kullanın ve dosya ve ~/.ssh/dizin üzerindeki izinleri sıkı tutun .

Her seferinde şifreyi girmek zorunda kalmadan anahtarı kullanmayı kolaylaştırmak için, OS X ssh-agentmakinenizdeki arka planda bir işlem yürütür . Bu aracı ilk kez kullandığınızda tuş takımını önbelleğe alır, böylece yalnızca bir kez şifrenizi girmeniz gerekir. Mac'inizi yalnızca uyursanız, asla yeniden başlatmazsanız, şifrenizi girmenize gerek kalmadan uzun süre çalışabilirsiniz.

Tüm SSH anahtarlarınızı aşağıdakileri ssh-agentçalıştırarak önbelleğe alabilirsiniz :

ssh-add

Artık birçok farklı hesap şifresini değil, sadece ana şifreyi hatırlamanız gerekiyor . Anahtar şifrelerimi genellikle 1Password'de (bağlı değil) saklıyorum , daha fazla hatırlamam gereken şifreleri daha da basitleştiriyorum. Sonra onları sadece 1Password'de aradım ve Mac'imi ssh-agentyeniden başlattığım ve çalışmamın yeniden başlatılmasına neden olduğum tuhaf bir zaman dilimini kesip yapıştırın .

Anahtarınızı uzak makinelere kopyalamayı, bu sorudaki Terminal.app bağlantı yönetimi çözümü ile birleştirirseniz , GUI bağlantısı deneyimi için PuTTY'ye çok yakın bir şey elde edersiniz.


Sunucu tarafında aşağıdakileri kontrol edin /etc/ssh/sshd_configve şunlardan emin olun:

PubkeyAuthentication yes

yapılandırmada etkin (varsayılan olarak OpenSSH’de). Ayrıca ayarlamak isteyebilirsiniz:

PasswordAuthentication no

Oradayken parola tabanlı kimlik doğrulama devre dışı bırakılır ve makineye erişmenin tek yolu anahtarlar olur.

Yapılandırma dosyasında herhangi bir değişiklik yaparsanız, makinede sshd'yi yeniden başlatmanız gerekir.


Thanks @IamC - bu cevap harika ve çalışacağına eminim. Giriş bilgilerinizi Terminal'e mi yoksa Mac'e mi kaydetmenin hızlı ve kolay bir yolunu bulabileceğimi görmek için bu sabah Mac Kanalında bir yığın değişim hesabı oluşturdum . Bunu yapmak son derece karmaşık ve benim için uygun bir çözüm değil gibi görünüyor. İşte bu yüzden: <more>
tammy

<cont.> Çok sayıda web sunucusuna komut satırı erişimine sahibim (toplamda 5). Çalışma ofisimde bu web sunucularına SSH (PuTTY üzerinden) erişimi olan bir masaüstü bilgisayarım var. Ev ofisimde bu web sunucularına SSH (PuTTY üzerinden) erişimi olan büyük bir dizüstü bilgisayarım var . Seyahat ve sahadaki müşteri ziyaretleri için bir MacBook Air satın aldım. Bu özel ihtiyaç için mükemmel. Sunuculardaki SSH bağlantılarını, PC'deki PuTTY ve SuperPuTTY üzerinden olduğu kadar kolay hale getirmeyi umuyordum. <more>
tammy

<devamı.> Ama kamu kimlik doğrulama anahtar yolundan geçemem çünkü PuTTY'nin ev ve işyeri bilgisayarlarımdaki çalışma şeklini değiştirmem gerekecek. Mac bilgisayarım gibi çalışmasını sağlamak çok zor bir görev oldu, bu yüzden Mac bilgisayarımdan bağlanmak için kopyala ve yapıştır işlemine bağlı kalmam gerektiğini düşünüyorum. Yardımın için teşekkürler. Sürecimi daha kolay hale getirme konusunda bana yardımcı olduğunuz için teşekkür ederim.
tammy

2
@tammy PasswordAuthentication yessunucu tarafında bırakabilirsiniz ve PuTTY her zaman Windows makinenizde olduğu gibi çalışmaya devam eder. Bu bir ya da senaryo değildir - sunucuda her iki kimlik doğrulama türüne de izin verebilirsiniz. PuTTY ayrıca bu FWIW gibi ortak / özel anahtar yetkilendirmelerini de destekler. ~/.ssh/id_rsa*Dosyalarınızı Windows makinenize kopyalayabilir ve sunucuya kimlik doğrulaması için PuTTY'ye alabilirsiniz. PuTTY, kaputun altında, olarak bağlanmak için tam aynı OpenSSH kitaplıklar kullanır sshOS X'te
Ian C.

1
ssh-addhala Sierra'da bile çalışıyor (OS X 10.12). Thanks
SaxDaddy

3

Şifreyi kaydetmek için sshpass komutunu kullanabilirsiniz ve her seferinde iyi bir uygulama olmayan (güvenlik sorunları) girmek zorunda kalmazsınız.

Mac os x kurulum talimatlarını şu adreste izleyin: https://gist.github.com/arunoda/7790979

Sshpass yüklü olduğunda çalıştır sshpass -p "YOUR_PASSWORD" ssh -o StrictHostKeyChecking=no root@123.456.789.012:2200

5 web sunucunuz için de aynı şeyi yapın; şifreyi her zaman girmeniz gerekmez.


1
Bu konuda kendimi çok aptal hissediyorum. PuTTY ve SuperPuTTY özellikli bir PC kullanarak beni temel komut satırından çok uzakta bıraktı. Genel Sekreterimi genel amacımla değiştirdim. Bir göz atın.
tammy

Şimdi root@123.456.789.012 numaralı telefona bağlanabileceğinizi ve işlemi otomatikleştirmek istediğinizi farz ediyorum. Temelde her seferinde yazmak istemiyorsunuz ssh -p 2200 root@123.456.789.012ve Password: **********************?
enzo,

ssh-copy-idstandart OS X dağıtımının bir parçası değildir.
Ian C.

@IanC. Sanırım, demleme taktığımı unuttum. cevabımı değiştirecek
enzo

@Maetsoh'u aldınız - burada tam olarak ulaşmak istediğim şey bu.
tammy

1

Genel / özel anahtar öğelerine ek olarak, .ssh / config dosyası, takma adlar, sunucu başına varsayılan kullanıcı / bağlantı noktası, ssh seçenekleri, proxy komutları gibi ssh komutlarının kullanımını kolaylaştıracak şekilde yapılandırılabilir ...

Temelde bir ssh komutuna koyabileceğiniz karmaşık bir şey de bu dosyada olabilir.


0

Putty'yi Mac'e yerel bir uygulama paketi olarak taşıdım, bu yüzden teknik bir kullanıcı değilseniz, macport'lara veya terminallere gerek yok.

Ekran görüntüleri ile ilgili daha fazla bilgi burada: http://www.wine-reviews.net/2016/08/putty-for-mac-os-x-now-available.html

Alkış,


Farklı sormaya hoş geldiniz! Soruyu doğrudan cevapladığınızdan emin olun. Üzerinde çalıştığınız bir üründen bahsedersem, sorun değil, ancak aynı pazarlama bulanıklığını birden fazla yazıya yapıştırmak yerine konuyla ilgilenmeye çalışın.
bmike
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.