Farklı bir kullanıcı adıyla uzak bir sistemde oturum açmak için SSH anahtarı kimlik doğrulamasını kullanabilir miyim?


17

"Uzak sistem" adında bir uzak sistemim ve bu sistemde "foouser" kullanıcı hesabım olduğunu varsayalım.

Yerel sistemimde, yerel kullanıcı "foouser" olarak bir SSH anahtar çifti oluşturabileceğimi, ortak anahtarı "uzaktan kumanda" üzerindeki "/home/foouser/.ssh/authorized_keys" dosyasına koyabileceğimi biliyorum. SSH'yi yerel sistemimden "uzaktan kumanda" ya "foouser" olarak kullandığımda, SSH beni doğrulamak için anahtar çiftini kullanır.

Ancak, yerel kullanıcı adım uzaktaki kullanıcı adıyla aynı değilse ne olur? Yani, SSH'yi yerel kullanıcı "baruser" olarak "uzaktan kumanda" olarak kullanmak istersem ne olur? Açıkçası, "bariyer" için bir anahtar çifti oluşturmam ve "/home/foouser/.ssh/authorized_keys" için ortak anahtarı eklemem gerekecek. Daha sonra, yerel olarak "bariyer" olarak oturum açtığımda "ssh foouser @ remotesystem" yapabilmeliyim ve SSH kimlik doğrulaması için anahtar çiftini kullanacak, değil mi?

Soruyorum çünkü anahtar kimlik doğrulamasını bu senaryoda başarılı bir şekilde çalışmaya çalışıyorum. Bunun kullanıcı adı uyumsuzluğu veya uzak sistemdeki SSH sunucusuyla ilgili bir yapılandırma sorunu nedeniyle olup olmadığından emin değilim.


Günlük sunucusu tarafını açtım ve uzak kullanıcının ana dizinindeki izinlerle ilgili bir sorun olduğunu kanıtladım. Sorun çözüldü! Cevap veren herkese teşekkürler.
Matt Hurne

Yanıtlar:


11

Evet, bunu açıkladığınız gibi yapabilirsiniz.

baruser @ here ~ $ ssh-add -l
4096 10: b3: fd: 29: 08: 86: 24: a6: da: 0a: dd: c6: 1e: b0: 66: 6a id_rsa (RSA)
baruser @ here ~ $ ssh foouser @ remotesystem
motd mesajı, vb.
foouser @ remotesystem ~ $

Cevap için teşekkürler. Deli olmadığımı biliyordum ... :-) Uzak sistemin SSH sunucu yapılandırmasında yanlış bir şey olmalı ve anahtar kimlik doğrulamasının tamamen çalışmasını engellemeliydim.
Matt Hurne

4
Eğer "ssh -V foouser @ remotesystem" yaparsanız neyin yanlış gittiğine dair bilgi alabilirsiniz. Genellikle ~ / .ssh dosyasında bir izin hatasıdır.
Paul Tomblin

4
-V değil (sürüm numarasını gösterir) ama -vvv (maksimum ayrıntı düzeyi)
Leven

10

Biraz bir kenara, ama .....

Uzak sunucu için her zaman aynı kullanıcı adını kullanıyorsanız, ssh yapılandırmanıza bir ana bilgisayar eklemenin de yararlı olduğunu görebilirsiniz:

Host remotesystem
    User baruser

Bu şekilde, oturum açarken kullanıcı adını belirtmeyi hatırlamanız gerekmez ve gelecekte anahtarlarla ilgili sorun yaşarken bunu devre dışı bırakırsınız.


5

Yerel kullanıcı adınız gerçekten önemli değil (yerel anahtarınızın ana dizininin içinde bulunması gereken özel anahtar dışında). Anahtarı uzaktaki kullanıcının authorized_keysbölümüne kopyalamanız yeterlidir.


3

Ssh ile ilgili herhangi bir sorunla, yapılacak ilk şey istemci ayrıntı düzeyini artırmaktır:

ssh kullanıcı @ makine -vvv

Bu size neyin yanlış olduğuna dair herhangi bir fikir vermezse, sunucudaki günlük düzeyini değiştirmeniz ve arka plan programını yeniden başlatmanız gerekir.

LogLevel DEBUG3

Hata ayıklama çıktısını /var/log/auth.log dosyasında (veya ssh'nin oturum açmak için yapılandırıldığı herhangi bir yerde) bulmalısınız. Sorunu bulduğunuzda, onu nasıl bulduğunuza geri ayarlamayı unutmayın.


2

Her iki makinede de .ssh dizinlerindeki izinler çok doğrudur. Genellikle, bu .ssh dizininde 700 ve ana dizinde en fazla 755 anlamına gelir. .Ssh dizinlerindeki tüm dosyalarda 600'e ek olarak.

Uzak sistemdeki kullanıcı root ise, root'un ssh olabileceğinden emin olun. (Sshd_config dosyasında PermitRootLogin) ve bu ortak anahtar (PubkeyAuthentication) ve gerekirse RSA (RSAAuthentication) etkinleştirilir.


RSAAuthentication tamamen ayrı bir yöntem değil mi?
user1686

RSA, SSH (DSA ile birlikte) tarafından desteklenen ortak anahtar algoritmalarından biridir. SSH1'deki tek yöntemdir.
Alexandre Carmel-Veilleux

2

SE Linux'u etkinleştirdiyseniz aşağıdakileri de yapmanız gerekir.

Sshd authorized_keysile erişilebilmesi için SELinux etiketini ekleyin .

semanage fcontext -a -t sshd_key_t ~foo/.ssh/authorized_keys
restorecon -Rv ~user/.ssh

0

İşleri doğru yaptığınız anlaşılıyor, ancak yetkili_anahtarlarda izinlerin doğru olduğundan emin olun. 600 olarak ayarlanmalıdır.

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.