ssh artık ~ / .ssh / config kullanmıyor


20

Yapabildiğim hiçbir şeyi ssh edemiyorum. Biraz kazma işleminden sonra ana dizinimden ssh config okumadığını öğrendim.

$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
(...)

Her şeyin çalıştığı bir arkadaşın özdeş bir bilgisayarındayken şöyle görünür:

$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
(...)

Daha önce işe yaradı ve bu soruna neden olmak için yapabileceğim hiçbir şeyin farkında değilim. Bu nasıl olabilir ve nasıl düzeltilir?

Tike ile gösterilen dokümantasyon bağlantısında

Kötüye kullanım potansiyeli nedeniyle, bu dosyanın katı izinleri olmalıdır: kullanıcı için okuma / yazma ve başkaları tarafından erişilemez.

Benim izinlerim:

$ ls -la ~/.ssh
total 80
drwx------+ 42 kuba  1029   1428 Jul  1 16:33 ..
-rwx------   1 kuba  1029   1528 May 15 13:07 config
(...)

Sorunun ana dizinle ilgili bir karışıklık olabileceğini düşünüyorum. Yerel yapılandırma dosyasını zorladığımda çalışmaya başlar ve sonra aniden okumaya başlar/nas/kuba

$ ssh -xvvvF ~/.ssh/config server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
debug1: /Users/kuba/.ssh/config line 1: Applying options for *
debug1: /Users/kuba/.ssh/config line 39: Applying options for bio
debug2: ssh_connect: needpriv 0
debug1: Connecting to XXXX [YYYY.YYY.YYY.YYY] port 22.
debug1: Connection established.
debug1: identity file /nas/kuba/.ssh/id_dsa type -1
                      ^^^^^^^^^^

Ama ev direkim iyi ayarlanmış gibi görünüyor:

$ cd ~; pwd
/Users/kuba
$ echo $HOME
/Users/kuba

4
Bir sorunu çözebildim. ~ / .Ssh içeriğini /nas/kuba/.ssh dizinine kopyaladım. Bu aslında aniden yanlış bir ev dizini kullanarak ssh ile ilgili sorun, muhtemelen gerçekten bir ssh sorunu değildir.
Kuba

Bu son yorum, soruyu düzenlemek için çok yararlı bilgiler olacaktır.
David Z

Çıktınız DSA kullandığınızı gösterir. En iyi / en yeni olduğu için DSA'ya geçmenin bir yolunu bulurdum ve DSA'nın bozuk olduğuna inanıyorum.
trysis

3
@Kuba Anlayabildiğim kadarıyla çevre değişkenini sshgörmezden geliyor HOME. Görmezden gelmek kötü bir uygulama HOME, öyle görünüyor ssh. O kullanmıyorsa HOME, tek alternatif ben onu yukarı bakmaktır farkındayım uid. /etc/passwdAynı girişte iki girişiniz varsa uid, her ikisi de .ssh/configfarklı bir eve sahip olsalar bile aynı dosyayı kullanırlar .
kasperd

1
@kasperd, bu bir cevap olmalı. Bu sayfada durumumda yardımcı olan tek kırıntı . Teşekkürler!
Wildcard

Yanıtlar:


14

Kullanıcıya özgü ve global ssh_config arasında sıkışıp kalmış gibi görünüyorsunuz.

Daha ayrıntılı olarak anlamak için lütfen kullanıcının yapılandırma dosyasının ( ~/.ssh/config) ve sistem genelindeki yapılandırma dosyanızın ( /etc/ssh/ssh_config) izin ayarlarını kontrol edin .

Bununla ilgili daha fazla bilgiyi buradan edinebilirsiniz . Pratik olarak, kullanıcı tabanlı .sshdizininizdeki tüm dosyalar 600, configdosya 644 olmalıdır. Bunu ana dizininizde aşağıdaki komutlarla ayarlayabilirsiniz:

chmod 600 ~/.ssh/* 
chmod 644 ~/.ssh/config

Bu yüzden ilk önce ana dizinimden yapılandırmayı ve daha sonra globalden (/ etc / ssh / ssh_config) config okuması gerektiğini anlıyorum. Soru şu - neden yerel yapılandırmamı bozuyor?
Kuba

güncellenmiş cevap yukarıdaki
tike

Denedim. Hiçbirşey değişmedi. Sorgumu daha fazla ayrıntıyla güncelledim.
Kuba

düzenleme sırasında yukarıdaki sorunun büyük ölçüde değişmesini engellediyseniz: debug1: /Users/kuba/.ssh/config line 1: * debug1 için seçenekler uygulama: /Users/kuba/.ssh/config line 39: bio'nun okuma yapılandırması için seçenekler uygulama, ve yapılandırma joker karakteriniz rol oynuyor gibi görünüyor. Ben ilk tanımlı bağlantı noktası ve dest sunucusu ile test etmek için basit yapılandırma dosyası tutmak istiyorum.
tike

Aslında soruyu büyük olasılıkla kapatmam gereken noktaya değiştirdim. Görünüşe göre ssh diğer dizini ana klasörüm olarak görüyor. Ne ~ ne de $ HOME olmayan bir şey.
Kuba

3

izinleri kontrol et

ls -lsd ~/.ssh

ve

ls -ls ~/.ssh/*

İzinler kötü ise, ssh istemcisi ondan okumaya çalışmaz


0 drwx ------ 9 kuba /Users/kuba/.ssh 8 -rwx ------ 1 kuba /Users/kuba/.ssh/config hepsinin sahibiyim gibi görünüyor
Kuba

@Kuba denemek ls -la ~ / .ssh /
c4f4t0r

ls -la ~ / .ssh toplam 80 drwx ------ 9 kuba 1029 306 1 Temmuz 16:33. drwx ------ + 42 kuba 1029 1428 1 Temmuz 16:33 .. -rw-r - r-- 1 kuba 1029406 7 Mayıs 14:53 yetkili_anahtarlar -rwx ------ 1 kuba 1029 1528 15 Mayıs 13:07 yapılandırma -rwx ------ 1 kuba 1029 1675 7 Mayıs 14:53 id_rsa -rwx ------ 1 kuba 1029406 7 Mayıs 14:53 id_rsa.pub -rw-r-- r-- 1 kuba 1029 16049 22 Mayıs 09:36 known_hosts
Kuba

@ emin misiniz, ev kullanıcısı dir açmak için değil mi?
c4f4t0r

2
Oradaki + bu ACL'ler değil mi? Suçlu olabilir mi?
Jorge Suárez de Lis

0

Ben de aynı sorunu vardı ve ben de benim ~/.sshdirek (0700) + x bayrağı ayarlayarak, aynı zamanda 0600 ayarlayarak düzeltmek başardı ~/.ssh/config.


0

Ne için değer, ben aynı sorunu vardı ve .sshklasörü tekrar oluşturmak için ssh yaparak (sadece sshbazı ssh komutunu yeniden adlandırmak ve yürütmek) ve daha sonra gerekli izinleri uygun izinlerle kopyalayarak düzeltti . (600 ile yapılandırın).

Görünüşe göre ssh klasör .sshonaylamadığı bir şekilde değiştirilirse şüpheli olur ...


0

NFS'ye monte edilmiş bir dosya sisteminde ise SSH yerel yapılandırmayı okumaz. Tüm izinler iyi olabileceğinden ve SSH (en azından sürüm 6.6) size neden kullanıcı yapılandırmasını okumadığına dair herhangi bir gösterge vermeyeceği için bu kontrol etmeye değer. (Ancak, -Fseçeneği kullanırsanız, bunu bir NFS biriminden okuyacaktır .)


0

MacO'larda da aynı sorunla karşılaştım. Manuel bir girişin hata ayıklama bilgisine (ssh @) baktığımda, görünüşe göre ssh'ın ana dizinin orada olduğunu ve orada dizini /srv/home/<userid>aradığını düşündüğünü öğrendim .sshve/Users/<userid>/.ssh/

Muhtemelen Mac'leri belirli bir şekilde kurma işi ile ilgili bir şey var, ancak bunu kontrol etmenizi tavsiye ederim sshve İşletim Sistemi ana dizinin nerede olduğuna karar verir;)


0

'Kasperd' sorusu hakkındaki yorumunda belirtildiği gibi, sshmutlaka '$ {HOME} /. Ssh / config' ifadesini aramayacağını unutmayın . Tespit edildiği gibi, daha derin kazmak ve oturum açma sırasında ve yeni bir HOME iddia edilmeden önce giriş dizininin nerede olduğunu öğrenmek önemlidir.

Çıktılarına bakma ipucu, ssh -xvvvF ~/.ssh/config serverbu aynı soruyu cevaplamaya yardımcı olmak için çok anlayışlıydı. '/ Etc / passwd' dosyasında iki farklı kullanıcı adının aynı UID'ye sahip olduğu bir sistemde kendini bulduktan sonra bu sorunla karşılaşıldı. İki kullanıcının '/ etc / passwd' içinde ayarlanmış farklı HOME dizinleri vardır.

Böyle bir senaryoda, '/ etc / passwd' dosyasında yinelenen bir UID'ye sahip ikinci kullanıcı olarak giriş yapılırsa ssh, ilk kullanıcının giriş dizinini SSH'yi çalıştıran kullanıcının eşleşen bir UID'si ile kullanır. komut.

Bu kullanım durumu oldukça garip ve çoğu halk için yardımcı olmayacak, ancak aslında oldu ve bu soru-cevap bir sorunun çözülmesine yardımcı oldu.


0

Bunun nedeni dosya izni ayarlarıdır.

Senin Kontrol .sshAyrıca ana dir izin ayarlarını kontrol dir ve dosyalar izinlerini.

Benim için başkalarının kişisel dosyalarımı görmesini istemiyorum, bu yüzden xevlerimin iznini kaldırıyorum . Bu, ssh'nin yetkili anahtarları yanlış yola bulmasına neden olur.

Bunu düzeltmenin bir yolu, başka bir yetki yolu ayarlamaktı /etc/ssh/sshd_config, örneğin:

AuthorizedKeysFile .ssh / yetkili_anahtarlar / etc / ssh / yetkili_anahtarlar

sonra pub'ınızı kopyalayın, /etc/ssh/authorized_keysbenim için çalıştı.

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.