Putty: Sunucuyu Başlarken anahtar Hatamızı reddetti


86

Kullanarak anahtar çifti oluşturdum puttygen.exe(istemci Windows 8'dir). Sunucuda (Ubuntu 12.04.3 LTS), genel anahtarımı yerleştirdim ~/.ssh/authorized_keys. Genel anahtar şudur:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAopfM6RHOgnuc4Aftn3t4k5UIAT3StCAbn/vg/IMbphbXadshC+79sIlRq3P4zGzMjFTP4hKnzu6ehLV5lmj/qorq3SKT+bPO5Qrac3VbIlrGvuBFDDjP82I2Hwg3HzlsFTstqk++KToapaTYZ7jENEYyPl2wnzITJnt//+4U1o6juoXTKgdNE02hHnRZyHOV/bnkZyJJCEwJv5U0eXSThQnhmXtUxGT8U0HQNFiXfqIIVllhWiCnyrhhIaKz/CIJNAd2VmzyJzQtJtTQX8aWSNVrZju6Sv2/RncTNvsACdNgjjh/FH8PQXaep00jlJ3MOdsC8vz6VSPFbh6iKy1oLQ== rsa-key-20131231

Yani doğru (tek satır, yorum yok, ssh-rsa ile başlıyor vb.)

.ssh dir izin seviyesi 700, yetkili_keys dosya izni 600'dür. Oturum açmaya çalıştığım asıl kullanıcıya ait hem dizin hem de dosya.

Bağlanmaya çalıştığımda alıyorum 'server refused our key've sunucu şifre soruyor. Bu kadar. /var/log/auth.logAnahtarla oturum açmaya çalışırken hiçbir şey oturum açmaz.

Her yere baktım ve tüm makaleler ve ipuçları, dosya / dizin için chmod 600 ve 700'ün ayarlanmasından ve anahtarı doğru şekilde biçimlendirmekten bahsediyor. Bütün bunları hala 'anahtarımızı reddettim' hatasını yaptım ve fikrim kalmadı.


2
Putty'ye aynı anahtarı kullanmasını söyledin mi? aynı kullanıcıyla mı oturum açıyorsunuz? bu varsayılan bir SSH kurulumu mu yoksa sshd_config'i mi değiştirdiniz?
Noam Rathaus

Puttygen 3 anahtar üretir: özel, genel ve .ppk uzantılı özel anahtarın kendi sürümü. Tabii ki putty.exe ile .ppk kullanıyorum ve genel anahtarı sunucuda .ssh / yetkili_keys içine yapıştırıyorum. Varsayılan SSH kurulumu / yapılandırması, sshd_config'i değiştirmedim.
PawelRoman

BTW, .ssh dizini ve auhtorized_keys oluşturmak zorunda kaldım, çünkü bu yeni Ubuntu kurulumu ve orada değildi. Belki bunun sorunla bir ilgisi vardır?
PawelRoman

3
Sshd_config'in genel anahtarları kullanacak şekilde yapılandırıldığından emin olun, öyle olmayabilir
Noam Rathaus

2
/Var/log/auth.log'da herhangi bir şey görüyor musunuz? SSH'nin günlüklerinin LogLevel'ini artırın DEBUGve kaydedilen sorunları görüp görmediğinizi görün, eğer hala yanlış günlük dosyasına baktığınızı göstermiyorsa
Noam Rathaus

Yanıtlar:


61

Tamam, anahtarımda küçük bir yazım hatası vardı. Görünüşe göre dosyaya yapıştırırken ilk harf kesildi ve ssh-rsa yerine sh-rsa ile başladı.

nrathathaus - cevabınız çok yardımcı oldu, çok teşekkürler, bu cevap size verilmiş :) Söylediğiniz gibi yaptım ve bunu sshd_conf içinde ayarladım:

LogLevel DEBUG3

Günlüklere bakarak, sshd'nin anahtarı doğru okuduğunu ancak yanlış tanımlayıcı nedeniyle reddettiğini fark ettim.


Hangi günlükleri kontrol ettiniz ve bunlar nerede? Tanımlayıcı nedir, bahsediyorsun?
user1046647

3
@ user1046647 LogLevel, içinde tanımlanmıştır /etc/ssh/sshd_config. Varsayılan günlük, /var/log/auth.logiçinde aksi belirtilmedikçe şeklindedir sshd_config.
Axel Kemper

Anahtar oluşturucuyla ilgili bir şey olmalı çünkü bende de aynı sorun vardı!
Kevin

3
Yetkili_anahtarını vim'de açarsanız ve hemen 'ssh_rsa'dan ilk' s 'i yapıştırmaya çalışırsanız, vim komutu olarak kabul edilir, bundan sonra vim ekleme moduna geçecek ve kalan metin yapıştırılacaktır. Daha önce ekleme moduna girerseniz yapıştırmak (örneğin kullanmak i) baştaki 's' kesilmeyecektir.
Pawel

1
! sudo service ssh restartdeğişikliklerin yürürlüğe girmesi için. Aksi takdirde, kimlik doğrulama günlük dosyamda hiçbir şey yoktu.
hogan

30

Diğer yanıtların yardımı olduğu için birkaç düşünce eklemek yardımcı oldu, ancak tam olarak uygun değildi.

Her şeyden önce, kabul edilen cevapta belirtildiği gibi düzenleyin

/etc/ssh/sshd_config

ve günlük düzeyini ayarlayın:

LogLevel DEBUG3

Ardından kimlik doğrulamayı deneyin ve başarısız olduğunda günlük dosyasını arayın:

/var/log/secure

Aradığınız hatalar olacaktır.


/var/log/var, ama secureyok. Hangi günlüğün yazıldığını nasıl keşfedebilirim?
aliteralmind

11
Varsayılan /var/log/auth.log, en azından Ubuntu 14.04.1'imde.
Axel Kemper

EVET! teşekkür ederim! pub anahtar
dosyamın

1
Linux / Ubuntu çok sinir bozucu. secure@Axel yorumlarını burada okumadan önce neden dosya olmadığını anlamaya çalışmak için 20 dakika harcadım.
JYelton

17

Benim durumumda / home / user'ın izinlerini 0755'ten 0700'e değiştirmek zorunda kaldım.


1
bu benim için sebep ve çözümdü
pstanton

4
kendim klasör ve 700 ile authorized_keys 600 sorunu çözdü
David Soussan

1
Benim için aynısı, .ssh klasöründe chmod 700 ve yetkili_keys üzerindeki chmod 600 sorunu çözdü
Iwo Kucharski

.ssh klasörü 700 ve yetkili anahtarlar 600 bunu benim için düzeltti.
Derin-B

13

Benim durumumda, bir izin sorunudur.

Ben günlük düzeyini değiştirdi DEBUG3ve de /var/log/secureI bu çizgiyi görüyor:

Authentication refused: bad ownership or modes for directory

Googled ve bu gönderiyi buldum:

https://www.daveperrett.com/articles/2010/09/14/ssh-authentication-refused/

chmod g-w /home/your_user
chmod 700 /home/your_user/.ssh
chmod 600 /home/your_user/.ssh/authorized_keys

Temel olarak bana şunu söylüyor:

  • gruptan kurtul wkullanıcı ana dizininizin izninden
  • değişiklik izni 700ait.ssh dir
  • izni değiştirmek 600ait authorized_keysdosyada.

Ve bu işe yarar.

Başka bir şey de, root oturumunu etkinleştirmiş olsam bile rootişe koyamıyorum. Başka bir kullanıcıyı kullansan iyi olur.


Bu cevap yetersiz oylandı. Ana dizinin gözden kaçan izinleri, sorunu gidermek için size tam bir güne mal olabilir.
chingNotCHing

Bana oy verdiğiniz için teşekkürler. Ben sadece sahip olduğum şeyi paylaşıyorum.
WesternGun

6

Windows 8.1 çalıştırırken server refused our keysorunla karşılaştım.

Kılavuzu takip ederek: https://winscp.net/eng/docs/guide_windows_openssh_server Windows oturum açma usernameve password. Ancak, a ile usernamekombinasyon halinde kimlik doğrulaması private keyyapıldığında yanıtserver refused our key .

Bir ortak anahtarla çalışmasını sağlamak , dosyadaki izinlere geldi : C:\ProgramData\ssh\administrators_authorized_keys

Bu yararlı bir sayfadır: https://github.com/PowerShell/Win32-OpenSSH/wiki/Trfunction-Steps

İki OpenSSH hizmetini durdurun, ardından bir command promptile açın admin permissions. O zaman koş: C:\OpenSSH-Win32>c:\OpenSSH-Win32\sshd.exe -ddd

Not: Aksi takdirde sshdşikayet ederseniz exe'nin tam yolunu belirtin . Bu, tek kullanımlık bir bağlantı dinleyicisi oluşturur. -ddd3. seviye ayrıntılı olmalıdır.

Bir bağlantı kurduktan sonra, günlükleri tarayarak ortaya çıkan:

debug1: trying public key file __PROGRAMDATA__/ssh/administrators_authorized_keys
debug3: Failed to open file:C:/ProgramData/ssh/administrators_authorized_keys error:2
debug1: Could not open authorized keys '__PROGRAMDATA__/ssh/administrators_authorized_keys':
        No such file or directory

Dosyayı oluşturmalıydı: C:\ProgramData\ssh\administrators_authorized_keys Ve public keymetni içine kopyalayın , örneğin: ssh-rsa AAAA................MmpfXUCj rsa-key-20190505 Ve sonra dosyayı kaydedin. Ben dosyayı kaydettiğiniz UTF-8ile BOM. Test etmediANSI .

Ardından günlüklerde tek seferlik komut satırını tekrar çalıştırmak şunu gösterdi:

debug1: trying public key file __PROGRAMDATA__/ssh/administrators_authorized_keys
debug3: Bad permissions. Try removing permissions for user: S-1-5-11 on file C:/ProgramData/ssh/administrators_authorized_keys.
        Authentication refused.

S-1-5-11'e verilen addır System.

Düzeltmek için dosyaya Bad permissionssağ tıklayın , simgesine gidin, düğmeyi tıklayın ve devralınan izinleri kaldırın. Daha sonra Windows oturum açma kullanıcı adı hariç tümünü silin , örneğin: Bunun için izinler olmalı , diğer her şey işaretlenmemiş. Dosyanın sahibi de olmalıdıradministrators_authorized_keysSecurity TabAdvancedGroup or user names:YourMachineName\usernameusernameRead AllowWrite DenyYourMachineName\username

Bu sorunu çözdü.

Diğer Yararlı bağlantılar:

OpenSSH-Win32.zip dosyasını şu adresten indirin: https://github.com/PowerShell/Win32-OpenSSH/releases

OpenSSH sunucusuna bağlantı yapmak için WinSCPnet.dll'nin nasıl kullanılacağına dair C # örneği: https://winscp.net/eng/docs/library#csharp

Aşağıdakileri kullanarak bağlantı kurmak için kod parçacığı aşağıdadır WinSCPnet.dll:

static void WinSCPTest() {
    SessionOptions ops = new SessionOptions {
        Protocol = Protocol.Sftp, 
        PortNumber = 22,
        HostName = "192.168.1.188", 
        UserName = "user123",
        //Password = "Password1",
        SshHostKeyFingerprint = @"ssh-rsa 2048 qu0f........................ddowUUXA="
    };

    ops.SshPrivateKeyPath = @"C:\temp\rsa-key-20190505.ppk";

    using (Session session = new Session()) {
        session.Open(ops);
        MessageBox.Show("success");
    }
}

SshHostKeyFingerprintVe SshPrivateKeyPathkendi değerlerinizle değiştirin .

Düzenleme: administrators_authorized_keys dosya izinlerinin ekran görüntüsü eklendi: görüntü açıklamasını buraya girin

Ne zaman OpenSSH SSH ServerHizmet Olarak çalışıyorsa, o zaman sadece Systemiznine sahip olmalıdır. Ancak, sshd.exekomut isteminden çalıştırılıyorsa , listelenen tek kullanıcı geçerli kullanıcı olmalıdır (okuma izni, yazma reddi).


3
Burada yardımcı olan birçok şey yaptınız. Önce komut satırında hata ayıklama bayrağıyla sshd çalıştırılır. Windows Hizmet Sistemi günlükleri çok az gösterdi ve hata ayıklamak için tamamen yararsızdı. İkinci olarak, bir Yönetici olarak, yetkili_keys için beklenen Kullanıcılar .ssh klasörüne değil, yalnızca administrators_authorized_keys dosyasına bakan bir hata bulunmasıdır (Windows'ta sshd çalıştıran herkesin keder noktası). Son olarak ProgramData'daki 'ssh' klasörü! Sunucu sertifikalarını vb. Nereye koyduğunu merak ediyordum. Yani sadece buradaki bilgileriniz bir iki gün kafamı kaşıdıktan sonra bana yardımcı oldu. Teşekkürler!
Master James

bu cevap, benim için yeni bir ec2 bulut sunucusu 2019 ücretsiz katmanında çalışan tek cevaptı.
yolob 21

3

Bu yanıtı, benim gibi interneti tarayarak saatlerini başarılı olmadan geçiren herkese yardımcı olmak için ekliyorum.

ANA KLASÖRÜNÜZ ŞİFRELENEBİLİR.

Veya bunun için, "yetkili_anahtarlar" dosyanızın yuvalanmış olduğu herhangi bir klasör. Dostum, bu bana çok zaman kazandırırdı. Kontrol etmek için gidin

ls -A

şifreleme durumunu belirlemek istediğiniz dizinde. Klasör ".encryptfs" adlı bir klasör içeriyorsa, cevap, evet, bu klasör şifrelenmiştir. Bu, doğrulama için gereken genel ssh anahtarını içeren "yetkili_keys" dosyasına erişmenizi engeller.

Bunu düzeltmek için "yetkili_anahtar" dosyasını şifreleme içermeyen bir dizin ağacına yerleştirin.


3

Bulduğum basit çözüm, authorized_keysdosyayı gizli .ssh dizininden uzaklaştırmak ve sistem ssh dizinine koymaktı:

/etc/ssh/keys/authorized_keys

Bunu yaptığım anda sorunsuz çalıştı.


3

Windows server 2008 r2'de aynı sorunu yaşıyor ve çözmek için çok şey araştırdı, sonunda bunu aşağıdakileri yaparak yaptı:

C: \ Program Files (x86) \ OpenSSH \ etc \ sshd_config'i textpad veya başka bir metin düzenleyiciyle açın

Aşağıdaki satırlardan yorumu kaldırın, kaldırdıktan sonra aşağıdaki gibi görünmelidir:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

kaydedin ve şimdi özel anahtarla giriş yapmayı deneyin. iyi eğlenceler.


ssh bazen yetkili anahtar dosyası satırı yorumlanarak yüklenir, böylece yetkili anahtar dosyasını nerede arayacağını bilemez :-(
kenyee

Official_keys dosyası için gereken izinler nelerdir? Kullanıcı dizininde mi yoksa OpenSSH dizininde mi olması gerekir?
GarfieldKlon

OpenSSH dizininde veya OpenSSH'nizi kurduğunuz yerde olmalıdır. onu bulabilmelisin
Ravi Anand

Yönetici hesabını kullanarak kurduğunuzdan emin olun.
Ravi Anand

2

Nrathaus'a teşekkürler ve /var/log/auth.log hata ayıklama düzeyindeki araştırma sayesinde aşağıdakiler geliyor.

Diğer bir neden, ana dizininizin 755'ten farklı izinlere sahip olmasıdır.


Ana dizininiz 700 olmalıdır, bu CentOS'ta varsayılan değerdir.
karatedog

2

Bugün bu sorunla karşılaştım ve sorunum, ortak anahtarı dosyadan kopyalarken yeni satır karakterlerinin de dahil edilmesiydi. Tüm gizli yeni satırları görmek ve son satır hariç tüm yeni satırları silmek için vim'de ": set list" kullanabilirsiniz. Ayrıca, anahtarımda başlangıçta "ssh-rsa" eksikti. Buna da sahip olduğunuzdan emin olun.


1
Benzer şekilde: PuttyGen'den kopyalarken, "ssh-rsa" dan sonra ve anahtardan sonra yeni satırlar aldım. Onları çıkardıktan sonra işe yaradı.
Lucian P.

1

Windows Server'dan bu hatayı alanlar için aynı hatayı aldım ve bu bir kullanıcı hesabı sorunuydu. Birçok kuruluşta, Yöneticiler için grup ilkesi, SSH Sunucusu ve bağlantılarının kurulmasına izin vermeyebilir. Bu tür bir kurulumla, bunun Yerel Yönetici hesabından yapılması gerekir. Genel anahtarda herhangi bir yazım hatası olmadığını onayladıysanız, incelemeye değer olabilir.


1

Benim durumumda, çalışmasını sağlamak için SELinux'u Centos6.6'da devre dışı bırakmak zorunda kaldım :)

/ Etc / selinux / config'i düzenleyin ve aşağıdakileri ayarlayın ve ardından ana bilgisayarı yeniden başlatın.

selinux=disabled

BTW ... sorunu tanımlamak için LogLevel = DEBUG3 ayarlamam gerektiğini söylemeyi unuttum.


1
SELinux'u devre dışı bırakmak yerine, .ssh klasöründeki güvenlik içeriğini değiştirebilirsiniz. chcon -R -t ssh_home_t .ssh
palehorse

1

Solaris'te aynı hatayı aldım ancak /var/adm/splunk-auth.log'da şunları buldum:

sshd: [auth.debug] debug1: PAM conv function returns PAM_SUCCESS
sshd: [auth.notice] Excessive (3) login failures for weblogic: locking account.
sshd: [auth.debug] ldap pam_sm_authenticate(sshd-kbdint weblogic), flags = 1
sshd: [auth.info] Keyboard-interactive (PAM) userauth failed[9] while authenticating: Authentication failed

/ Etc / shadow dosyasında hesap kilitlendi:

weblogic:*LK*UP:16447::::::3

"* LK *" bölümü kaldırıldı:

weblogic:UP:16447::::::3

ve her zamanki gibi yetkili_keys ile ssh kullanabilirim.


1

Benim durumumda buna ( /etc/ssh/sshd_config) neden oldu :

PermitRootLogin no

Olarak değiştirildi yes, hizmeti yeniden başlattı ve normal şekilde girdi.


1

Bu sorunu çözdüm, puttygen üçüncü taraf bir yazılımdır, kendisi tarafından oluşturulan ssh anahtarı doğrudan kullanılmamıştır, bu nedenle bazı değişiklikler yapmanız gerekir. Örneğin şuna benziyor

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20170502"
AAAAB3NzaC1yc2EAAAABJQAAAQEAr4Ffd3LD1pa7KVSBDU+lq0M7vNvLp6TewkP7
*******C4eq1cdJACBPyjqUCoz00r+LqkGA6sIFGooeVuUXTOxbYULuNQ==
---- END SSH2 PUBLIC KEY ---- 

Ortadaki bazı alfabeleri atladım, * ile değiştirmedim, yoksa StackOverflow bana kod formatının yanlış olduğunu söyledi, göndermeme izin verme。

bu puttygen tarafından oluşturulan ssh anahtarım, buna değiştirmelisiniz

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAr4Ffd3LD1pa7KVSBDU+lq0M7vNvLp6TewkP7wfvKGWWR7wxA8GEXJsM01FQw5hYWbNF0CDI7nCMXDUEDOzO1xKtNoaidlLA0qGl67bHaF5t+0mE+dZBGqK7jG9L8/KU/b66/tuZnqFqBjLkT+lS8MDo1okJOScuLSilk9oT5ZiqxsD24sdEcUE62S8Qwu7roVEAWU3hHNpnMK+1szlPBCVpbjcQTdiv1MjsOHJXY2PWx6DAIBii+/N+IdGzoFdhq+Yo/RGWdr1Zw/LSwqKDq1SmrpToW9uWVdAxeC4eq1cdJACBPyjqUCoz00r+LqkGA6sIFGooeVuUXTOxbYULuNQ== yourname@hostname

Benim durumumda, bazı yorumları sildim, örneğin

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20170502"
---- END SSH2 PUBLIC KEY ----

ve ssh-rsabaşında ekleyin yourname@hostname, en sonunda ekleyin . not : sonda silmeyin ==ve sizin için "adınızı" ve "ana bilgisayar adını" değiştirmelisiniz, benim durumumda, uaskh@mycomputeradınız vps'nizde oturum açmak istemenizdir. tüm bunlar yapıldığında, herkese açık yükleyebilirsiniz. -tuşu uaskh evine ~/.ssh/authorized_keystarafından cat public-key >> ~/.ssh/authorized_keysdaha sonra sudo chmod 700 ~/.ssh sudo chmod 600 ~/.ssh/authorized_keyssonra değiştirmek gerekir / etc / ssh / sshd_config RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keysbenim işletim sistemi CentOS 7'dir Bu anwser soruya benim ilk kez, yapacak çabalarımı çalışacağız, teşekkür ederiz!


1
@Ronak Bhatt, Benim için teşekkür ederim, kodları netleştirmeye çalıştım, tüm bu kodlar için ctrl + K kullandım, ancak StackOverflow bana "cevabınız kod içeriyor, lütfen doğru formatı kullanın" dedi ve nedenini bilmiyorum yazılanla gönderilenler arasında farklı, cevabımı gönderemiyorum, bu da beni 'kod' satırına satır satır eklemem zorunda bırakıyor. Markdown formatını öğreneceğim, düşünüyor.
nükleer

Mevcut sürümde PuttyGen, ortak anahtarı kopyala ve yapıştır için doğru biçimde gösterecektir. Yani artık putty pub anahtarını manuel olarak doğru biçime dönüştürmeye gerek yok.
Erik Kalkoken

1

Aman Tanrım, bunu düzeltmek için günler harcadım. İşte benim için işe yarayan şey burada. Kök katına şu şekilde geri döndüm: cd / root / mkdir .ssh cd .ssh chmod 700 .ssh nano -w yetkili_keys service ssh restart Bu yüzden Putty üzerinden loglama yapmak için root kullandım ve işe yaradı. bu yüzden macun içinde kullanmak istediğiniz kullanıcı için aynısını yapmaya çalışın.


1

Benim durumumda bu yanlış bir kullanıcıydı: grup atfı. Doğru kullanıcı ve grubu belirlemeyi çözdüm:

sudo chown [user]:[group] -R /home/[user]

0

Psftp ile bir PUTTYgen dosyası kullanıyorum ve bir istemci için yeni anahtarlar oluşturmamız gerektiğinde Windows Sunucumda bu sorunla karşılaştım. Bağlantının çalışması için private_key_name .ppk dosyası ve open_ssh.txt dosyası aynı dizinde olmalıdır.


0

Benim durumumda nfs üzerindeki ev 777 idi, 750 olması gerekiyordu. Bu sorunu çözdü.


0

Sshd'nin yalnızca authorized_keys2 .

Dosyayı kopyalamak veya yeniden adlandırmak benim için sorunu çözdü.

cd  ~/.ssh
sudo cat authorized_keys >> authorized_keys2

PS Windows'tan Putty kullanıyorum ve anahtar çifti oluşturmak için PuTTyKeygen kullandım.


0

Mobaxterm üzerinden oturum açmaya çalışırken benzer bir sorunla karşılaşıyordum. Özel anahtar macun yoluyla oluşturuldu. Anahtarın yeniden oluşturulması benim durumumda yardımcı oldu.


0

Cpanel kullanırken, anahtarın yetkili olup olmadığını kontrol edebilirsiniz.

SSH Erişimi >> Genel anahtarlar >> Yönet >> Yetkilendir veya Yetkilendirme.


0

bu hatayı alırsan /var/log/secure

hata: key_read: key_from_blob AA
AAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG + rKz93l7em1BsUBzjHPMsswD

bu, anahtarınızda yer olduğu anlamına gelir, .ppkdosyayı görüntülediğinizde puttgen aracılığıyla anahtar oluşturduysanız , aşağıdaki gibi görünecektir:

AAAAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG+rKz93l7em1BsUBzjHPMsswD
al74MLaJyhQD0pE23NS1izahbo1sJGnSJu2VJ//zxidSsba6xa6OvmeiKTwCz0E5
GMefdGVdpdbTlv99qjBl1+Nw1tDnHIC0+v9XmeZERQfCds9Kp1UivfReoYImntBC
gLtNyqRYrSu8csJCt7E1oY8QK6WP1vfYgAQ2taGyS9+g7FHyyf5VY2vH3oWzzbqz
xjsSLAv3zEQSm1LzSw9Pvc8iwasFyUMBOPj31CKQYTXyX8KpJTr0Zb7oqMauBE5L
VwxZhlcJHbj0FsMbF/+GRjvgexymCi3bHmwGQ6FEADNd0RkhdQ==

ve onu yapıştırmaya çalıştığınızda anahtarı okurken bir hata alırsınız, bu yüzden anahtarı düzenlemeye çalışın ve bir satır yapın ve deneyin

bu bir şeye benzemeli

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG+rKz93l7em1BsUBzjHPMsswDal74MLaJyhQD0pE23NS1izahbo1sJGnSJu2VJ//zxidSsba6xa6OvmeiKTwCz0E5GMefdGVdpdbTlv99qjBl1+Nw1tDnHIC0+v9XmeZERQfCds9Kp1UivfReoYImntBCgLtNyqRYrSu8csJCt7E1oY8QK6WP1vfYgAQ2taGyS9+g7FHyyf5VY2vH3oWzzbqzxjsSLAv3zEQSm1LzSw9Pvc8iwasFyUMBOPj31CKQYTXyX8KpJTr0Zb7oqMauBE5LVwxZhlcJHbj0FsMbF/+GRjvgexymCi3bHmwGQ6FEADNd0RkhdQ== username@domainname


0

Benim için işe yarayan şey şudur:

  • Ec2 örneğini durdurdu
  • hacmi ayır
  • aynı anahtarı kullanarak birimi eski örneğe ekleyin ve SSH yapabildi
  • birimi bazı geçici klasöre bağla
  • mount_point / home / ec2-user / .ssh / yetkili_keys dizinindeki dosyayı kontrol etti
    • İdeal olarak, bu dosyanın anahtar bilgilerimize sahip olması gerekir, ancak benim için bu dosya boştu
  • eski örnek auth_keys dosyasını yeni eklenen birime kopyaladı
  • cihazı çıkarın
  • orijinal ec2 örneğine yeniden bağlan
  • başlatın ve sağlık kontrollerini geçmesine izin verin

Bu sefer benim için çalışıyor. Ancak örnek başlatıldığında neden anahtar dosya bilgilerime sahip olmadığını bilmiyorum. Bu bağlantıyı da kontrol edin https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TrfunctionInstancesConnecting.html#TrfunctionInstancesConnectingMindTerm


0

Benim durumumda sorun şöyleydi, ssh anahtarlarının oluşturulması sırasında anahtarların varsayılan dizinlerini kasıtlı olarak değiştirdim. Bu nedenle, ~ / .ssh / yetkili_keys konumunu kullanmak yerine kullanmayı seçtim ~/home/user/folder1/.ssh/authorized_keys, bu değişikliklerin işe yaraması için bu dosyadaki yeni konumla ilgili aynı değişiklikleri yapmam gerekiyordu /etc/ssh/sshd_config. Ancak bunu fark edene kadar, burada başkaları tarafından önerilen birkaç çözümü denedim, buna ev klasörünün iznini 700ve .ssh dizinini 600.


0

Kök montajını düzeltme adımları (ec2-kullanıcı klasörü ve yetkilendirme anahtarı dosyasıyla izni değiştirirken izlediğim) Bu işlem, bir kalem sürücüyü ayırma ve takma işlemine benzer olacaktır.

Aşağıda karşılaşabileceğiniz diğer bazı senaryolar verilmiştir -

  1. Bir SSH özel anahtarı kullanıyorsunuz, ancak ilgili genel anahtar, yetkili_keys dosyasında değil.
  2. Yetkili_keys dosyanız için izniniz yok.
  3. .Ssh klasörü için izniniz yok.
  4. Yetkili_keys dosyanız veya .ssh klasörünüz doğru adlandırılmamış.
  5. Yetkili_keys dosyanız veya .ssh klasörünüz silindi.

Onları düzeltmek için adımlar

  • Sorunlu Ec2 örneğini durdurun
  • Kök birimi ayırın (/ dev / sda1)
  • Bir ec2 örneği oluşturun veya çalışan bir örnek kullanın
  • Ayrılmış birimi (/ dev / sdvf) yeni ec2 örneğine bağlayın

Şimdi yeni ec2'ye giriş yaptıktan sonra aşağıdaki adımları çalıştırın

  • Lsblk komutu - mevcut tüm bağlantıları listele
  • Sorunlu örnekten ayırdığınız bağlama değerini seçin
  • Ec2-user çalıştırırken "sudo mount / dev / mapper / rootvg-home / mnt" sudo mount /dev/mapper/rootvg-home /mnt
  • Ardından dizini / mnt olarak değiştirin
  • Gerekli tüm değişiklikleri yapın

Şimdi karşılaştığımız sorunla hacmimizi düzelttik. Çoğunlukla kullanıcı izni sorunu olabilir - Bağlantısını kesmek için Umount / mnt - Şimdi konsola gidin ve yeni örneğe bağlı birimi işaret edin ve çıkarın - Ayrıldıktan sonra, yeni biriminize / dev / sda1 olarak ekleyin

Bununla birlikte, başarıyla giriş yapabilmeniz gerektiğini söyledi


0

Deneyimlerime göre, macundan anahtarlar üretmenizi, linux tarafından üretmemenizi öneririm. Çünkü anahtar eski PEM formatı olacaktır. Her neyse, sadece benim önerim. Aşağıdaki adımları attım ve kendimle ve ekibimle iyi çalıştım.

  1. Yerelinizde PuTTYGen.exe ile bir anahtar çifti oluşturun (tür: RSA, uzunluk: 2048 bit).

  2. Özel / genel anahtarı yerelinize " id_rsa.ppk / id_rsa.pub " dosyaları olarak kaydedin.

  3. Ardından "kamu anahtarı girin yerel üzerinde "authorized_keys" dosyası oluşturun id_rsa.pub " den " authorized_key'lerine ". İçeriğin " ssh-rsa " ile ve yalnızca bir satırla başlaması gerektiğini unutmayın .

görüntü açıklamasını buraya girin

  1. Kullanım WinScp (veya macun komutu) "kopyalamak için authorized_keys & id_rsa.pub Eğer linux-kullanıcı ev" için yerel dan " /home/$USER/.ssh/ ".

görüntü açıklamasını buraya girin

  1. Şu komutları çalıştırın:

    chmod 700 .ssh

    chmod 600 .ssh / yetkili_keys

    chown $ USER: $ USER .ssh -R

  2. Yük özel anahtar "ederek bağlantı ayarı test id_rsa.ppk PuTTY.exe profilinde", daha sonra açık tıklayın (varsa Parolanızı koymak).

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin


0

anahtarınızı kontrol edin, bu bugün bir rsa (id_rsa.pub) anahtarı olmalı ve artık bir dss (id_dsa.pub) anahtarı olmamalıdır, puttygen 0.70 kullanın ve üretilecek anahtar türü için RSA'yı seçin, ana bilgisayardaki genel anahtarı değiştirin ~ /. ssh / yetkili_keys


0

Anahtar ekledikten sonra, ec2-userbir Amazon Linux makinesi kullanıyormuş gibi oturum açın


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.