SSH'yi nasıl kurarım ki bir ana bilgisayara bağlanırken şifremi yazmak zorunda kalmayacağım?
~/.ssh/config
PubkeyAcceptedKeyTypes ssh-rsa*,ssh-dss*
SSH'yi nasıl kurarım ki bir ana bilgisayara bağlanırken şifremi yazmak zorunda kalmayacağım?
~/.ssh/config
PubkeyAcceptedKeyTypes ssh-rsa*,ssh-dss*
Yanıtlar:
GNOME kullanıyorsanız, denizatı uygulaması ("Şifreler ve Şifreleme Anahtarları") sizin için yapabilir: Dosya -> Yeni -> Güvenli Kabuk Anahtarı .
Eğer terminali tercih ederseniz, bir anahtar çifti üretmek için çalıştırın. Geçerli keypair türleri:ssh-keygen -t <type>
Program sizden bir parola ve yeni anahtarın kaydedileceği bir yer isteyecektir . Önerilen diğer yolun kullanılması önerilir, çünkü diğer tüm araçlar orada arayacaktır.
Yine denizatı bunu sizin için sık sık yapabilir - Kişisel Anahtarlarım'da SSH anahtarınıza sağ tıklayın ve Güvenli kabuk için Yapılandır anahtarını seçin .
Veya, ssh-copy-id -i ~/.ssh/id_rsa.pub remote-user@remote-host
terminalde.
Veya, adım adım tamamen manuel olarak:
.ssh
Uzak ana bilgisayardaki uzak kullanıcının giriş dizininde ( önceden mevcut değilse) bir dizin oluşturun .authorized_keys
zaten mevcut değilse adlı bir dosya oluşturun .umask
normalden daha liberaldir, dosyayı değil grup yazılabilir yapın: chmod go-w ~/.ssh ~/.ssh/authorized_keys
.~/.ssh/id_rsa.pub
) içeriğini uzaktaki ~/.ssh/authorized_keys
dosyaya kopyalayın (ekleyin) .Özel anahtarınızı bir ssh aracısına yüklerseniz , şifresi çözülmüş anahtarı bellekte tutar. Bunun bir sunucuya girdiğimizde şifreyi tekrar girmemesini istiyoruz.
İlk önce, aracının başlatılması veya başlatılan bir iletişim soketinin yolunun bir değişkene yüklenmesi gerekir. Ssh-agent'ı bir terminalde çalıştırmak , ajan değişkenlerini atamak ve ayarlamak için komutlar üretecektir. Bu komutlar farklı bir terminalde kullanılmak üzere bir dosyaya kaydedilebilir. Alternatif olarak, bir kişi bu komutları çalıştırabilir ve aynı aracı başka bir terminalde tekrar kullanmayı unutabilir. örneğin: eval $(ssh-agent)
.
Anahtarın yüklenmesi, basit bir şekilde çalıştırılması ssh-add
ve geçiş cümlesi verilmesi meselesidir .
GNOME kullanıyorsanız, gnome-keyring-daemon genellikle ssh-agent ile aynı SSH ajanı işlevini sunar, bu nedenle bir şey başlatmanız gerekmez. GNOME, oturum açma sırasında da anahtarı otomatik olarak yükler ve kilidini açar.
Her şey doğru yapılmışsa, sizden bir şifre girmeniz istenmeyecektir. Temsilcide anahtarla ilgili bir sorun varsa, kullanıcı hesabının şifresini değil, şifrenin şifresini yazmanız istenir.ssh user@server
İletişim için ssh kullanan herhangi bir şey, aracıya doğru anahtar yüklendiğinde kullanıcı hesabı şifresini girmeden çalışacaktır. Scp , sftp ve rsync gibi programlar bunu kullanır.
id_dsa
yerine kullanın id_rsa
ve ECDSA olacaktır id_ecdsa
.authorized_keys2
- fakat kullanımda 5,0'dan daha eski herhangi bir şey bulamazsınız.lsh
, ssh.com
ve diğer (Unix ve değil) SSH sunucuları bu öğreticiye dahil değildir.Genel anahtarı uzaktaki bir ana bilgisayara kopyalama:
ssh-copy-id -i ~ / .ssh / id_rsa.pub myaccount @ remotehost # bu cat ~ / .ssh / id_rsa.pub | ssh myaccount @ remotehost \ 'mkdir -p ~ / .ssh; cat >> ~ / .ssh / approved_keys '# ya da
ssh aracısı> ~ /. ssh / çapraz terminal aracısı . ~ / .Ssh / çapraz terminal madde
ssh-copy-id
genel anahtarı hedef ana bilgisayara kopyalayan ve izinleri otomatik olarak ayarlayan bir komut var.
ssh-keygen -f ~/.ssh/id_rsa -N "";ssh-copy-id -i ~/.ssh/id_rsa username@server-ip-or-address
(sadece değiştirin username@server-ip-or-address
).
Hangi Unix'te bulunduğunuzu, hangi Unix'e bağlandığınızı, hangi kabuğu kullandığınızı, hangi SSH varyantını kullandığınızı vb. Belirtmediniz. bu, birçok unix varyantında kullanılan OpenSSH'nin oldukça yeni sürümlerine dayanıyor.
Bunların hepsi yerel masaüstü sisteminizden.
ssh-keygen
Anahtar adı için varsayılanı kullandığınızdan emin olun. Bunu önermek yapmak aksi takdirde güvenlik sorunu var, o tuşun üzerinde bir parola ayarlayın. "-t rsa" kötü bir fikir olmaz, ancak muhtemelen gerekli değildir.
ssh-copy-id username@server
Bu sizden oturum açmak için kullanacağınız şifreyi soracak ve yetkililer için anahtarlar için gerekli düzenlemeleri yapacaktır. (elle yapmaya gerek yok)
Sonra bu:
`ssh-agent`
ya da belki bu:
exec ssh-agent sh
veya:
exec ssh-agent bash
Bu, anahtarınızı tutabilecek bir SSH ajanı başlatacak. Birçok modern Unix türünde, grafiksel olarak giriş yaptıysanız, bu zaten gerçekleşmiş olacaktır. İlk değişken (geri tepme çubukları ile) arka plana bir ssh-ajanı yerleştirir ve onunla konuşmak için ortam değişkenlerini ayarlar. İkincisi, aracının sizin için bir kabuk çalıştırmasını sağlayın, böylece kabuktan çıktığınızda aracıdan çıkılır.
Birçok modern Unix varyantı, özellikle grafiksel olarak giriş yaptıysanız, sizin için çalışan bir araca sahip olacaktır. " ps aux | grep ssh-agent
" Veya " ps -ef | grep ssh-agent
" deneyebilirsiniz ; Bir şey zaten çalışıyorsa, onu kullanın.
Sonunda:
ssh-add
Bir parola isteyecektir; ssh-keygen'e verdiğin şeyi ver. Grafiksel olarak sormanın da yolları var. Ve bunu otomatikleştirmek için ssh-agent ve ssh-add eşyalarını giriş komut dosyalarınıza koyabilirsiniz (kurulum, kullandığınız kabuğa bağlı olarak değişir), ancak bazı Unix varyantları (örneğin, geçerli Ubuntu Linux) bunun çoğunu otomatik olarak yapar. Yapmanız gereken tek şey bir anahtar oluşturmak ve uzaktaki ana bilgisayara kurmak için ssh-copy-id kullanmak.
Şimdi, " ssh username@server
" herhangi bir kimlik doğrulama istemeden çalışmalı. Perdenin arkasında, ssh-ajanının tuttuğu bir anahtar kullanıyor ve ajandan bunun için sihirli imza püf noktalarını yapmasını istiyor.
Bunu PuTTY'de Windows'ta da yapmak mümkün .
Genel / özel anahtar çiftinizi ayarladıktan sonra tüm ayarları yapın (burada verilen yanıtların gösterdiği gibi) PuttyGen'i çalıştırın. Buraya önceden kurduğunuz mevcut özel anahtarı yükleyin ve ardından bir PuTTY özel anahtarı (ppk) olarak kaydedin.
Daha sonra PuTTY'de, otomatik olarak oturum açmak istediğiniz kaydedilmiş oturumu tıklayın ve Yükle'yi tıklayın. Buradan, sol bölmedeki Bağlantı -> Veriler bölümüne gidin ve "Otomatik oturum açma kullanıcı adı" bölümüne, o uzak sunucunun kullanıcı adını yazın:
Bundan sonra Bağlantı -> SSH -> Auth’a gidin ve PuttyGen’de yaptığınız ppk’ye göz atın:
Ardından oturum sayfasına geri dönün ve daha önce yüklediğiniz oturumu kaydedin.
ServerFault'daki çok benzer bir sorudan, sizin için kimlik doğrulama anahtarlarını ayarlamakla ilgili tüm adımları uygulayan ssh-copy-id kullanmanızı öneririm :
ssh-copy-id, uzaktaki bir makineye giriş yapmak için ssh kullanan bir komut dosyasıdır (muhtemelen bir giriş şifresi kullanarak), bu nedenle, birden fazla kimliğin akıllıca kullanılmasını sağlamadığınız sürece, şifre doğrulamanın etkinleştirilmesi gerekir)
Ayrıca, grup yazılabilirliğini gidermek için uzak kullanıcının evini (~ / .ssh ve ~ / .ssh / yetkili_keys) izinlerini de değiştirir (aksi takdirde uzak sshd yapılandırmasında ayarlanmışsa, oturum açmanızı engeller).
-İ seçeneği verilmişse, ssh-agent'ınızda herhangi bir anahtar olup olmadığına bakılmaksızın kimlik dosyası (varsayılan olarak ~ / .ssh / identity.pub) kullanılır.
Yapmanız gereken tek şey basitçe şudur:
ssh-copy-id user@host
Bir kez şifrenizi yazın ve gitmek için iyi bir konum!
Ssh anahtarlarının nasıl ayarlanacağına dair zaten söylenenlerin yanı sıra, Keychain'i oturum açma yerine yalnızca sistem başına bir işlem yapmanıza olanak tanıyan bir ssh-agent konsolu ön yüzü olarak öneririm .
Aynı şeyi yapan GNOME ve KDE araçları olduğunu biliyorum ama eğer konsol bağımlısı iseniz bu harika (ve çoğu Unix sistemlerinde kullanılabilir).
Kullanmak için, aşağıdakini ~/.bashrc
(diğer kabukları için benzer şekilde) ekleyin :
if type keychain >/dev/null 2>/dev/null; then
keychain --nogui -q <all your SSH/PGP keys>
[ -f ~/.keychain/${HOSTNAME}-sh ] && . ~/.keychain/${HOSTNAME}-sh
[ -f ~/.keychain/${HOSTNAME}-sh-gpg ] && . ~/.keychain/${HOSTNAME}-sh-gpg
fi
http://linuxproblem.org/art_9.html
Senin hedefin
Görevlerinizi otomatikleştirmek için Linux ve OpenSSH kullanmak istiyorsunuz. Bu nedenle, ana bilgisayar A / kullanıcı a ile Ana Bilgisayar B / kullanıcı b arasında otomatik bir oturum açmaya ihtiyacınız vardır. Parola girmek istemiyorsunuz, çünkü ssh'yi bir kabuk betiğinden çağırmak istiyorsunuz.
Bu gerçekten çok kısa bir öğretici yazdım, gerçekten gerçekten çok gerçekten hayal kırıklığına uğradım gerçekten çok uzun öğreticiler çünkü gerçekten çok basit :)
test -f ~/.ssh/id_rsa.pub || ssh-keygen -t rsa #press enter twice if given prompts, then "ssh-add"
scp ~/.ssh/id_rsa.pub destID@destMachine:/tmp/ #type password
ssh destID@destMachine #type password
cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
rm /tmp/id_rsa.pub
ssh-keygen
. (Bir tür belirtmeniz gerektiğini söylerse, yapın ssh-keygen -t rsa
.) Sizden bir dosya konumu sorduğunda, varsayılanı alın. Sizden bir şifre istediğinde, şifre girmemek için enter tuşuna basın.cat ~/.ssh/id_rsa.pub
(ya da her türlü varsayılan dosya konumu içinde ssh-keygen
bir olması gerekirdi olsa idi gerçekten eski ssh
farklı olmak için kurulum); çıktıyı panoya kopyalayın.~/.ssh/authorized_keys
(varsa ~/.ssh
, bir slogin
yere; doğru izinlerle oluşturmanın kolay ve basit bir yoludur). Panonuzu ( id_rsa.pub
diğer ana makineden içeren ) bu dosyaya yapıştırın .Hepsini Linux'taki terminalde yapmak istiyorsanız:
Ana bilgisayarda
cd ~ / .ssh /
ssh-keygen -t {rsa | dsa} -b {1024 | 2048 | 4096} -C "istersen bazı yorum metni" -f id_ArbitraryName
{} İçindeki öğeler seçeneklerdir, rsa veya dsa kullanın ve bit boyutunu seçin (daha büyük daha güvenlidir)
O zaman izinleri yetkili_keylere ve yetkili_keys dosyalarına eklemelisiniz.
cat id_ArbitraryName.pub >> yetkilinin_ tuşları
cat id_AribtraryName.pub >> yetkili_keys2
Ardından, id_AribtraryName dosyasını, ssh yapmak istediğiniz kutuya indirin. Bağlantı kutusu unix tabanlıysa, bir config dosyası gerekli olabilir (macun içinde yukarıda belirtilen biri).
Bağlantı Kutusunda
Config dosyanızda - vim ~ / .ssh / config
Example.host.com # veya bilgisayarınızın adını barındırın
Kullanıcı kullanıcı adı
IdentityFile ~ / .ssh / id_ArbitraryName
Config dosyası 600'ün izinine ihtiyaç duyuyor. SSh klasörü 700'e ihtiyaç duyuyor.
Çok ihmal edilen config sorunla karşılaşırsanız yardımcı olur umarım.