Gnome-keyring $ SSH_AUTH_SOCK'u nereye koyuyor?


10

gnome-keyringBir SSH ajanı olarak kurtulma sürecindeyim .

Yaptığım şeyler

  • İnternette saatlerce arama yaptı.
  • Değişen şeyler ve sık sık yeniden başlatıldı.
  • Sonunda sadece rmSSH ile ilgili tüm otomatik başlatma şeyleri.

Orada olduğu gibi bu son şey sihirli çalıştı artık orada ajan için soket:

/run/user/[uid]/keyring/ssh

Sorun

Kalan sorun olduğunu rağmen benim harika yukarıda bahsedilen sonuç elde etme, bir şey de gnome-keyringyine ayar ısrar SSH_AUTH_SOCKetmek artık mevcut olmayan yukarıda soket. Zombiler gibi, bu şeyler asla ölmez.

Soru

Bu değişkeni ayarlayan nedir ve nerede yapılır?

tuzaklar

  • Ben am değil başka bir değere o değişkeni sıfırlamak nasıl soran.
  • Ben am değil ben sistem genelinde veya bir kabuk yapılandırma dosyasında bu değeri ayarlayabilirsiniz nasıl soran.
  • Ben am değil , set, reset unset dondurmak ya da bir şey değiştirmek için bazı init-komut voodoo büyülü sözler soran.
  • Ben am değil hala benim şifreler için ihtiyaç ve Gnome en entegre ve cilalı şifre yöneticisi gibi görünüyor: şeyi kaldırmak için tavsiyeler soran.

O şeyin olması gerektiği gibi devre dışı bırakılmasını istiyorum.


2
Gnome-keyring kaldırılsın mı?
rudimeier

1
@rudimeier: Şifrelerim için hala gnome anahtarlığına ihtiyacım var ve bildiğim kadarıyla Gnome'da daha parlak ve entegre bir şey yok.
JohnW

@rudimeier bile bu işe yaramıyor gibi görünüyor. Denedim.
André Borie

Yanıtlar:


8

Tahmin edeyim - Wayland kullanıyorsunuz. Bugün bu problemle karşılaştım ve çözümü paylaşacağımı düşündüm.

Gnome-Session SSH_AUTH_SOCKnedense karayolları altında kodlanmış bir geçersiz kılmaya sahiptir . Aşağıdaki taahhüdüne bakın: https://github.com/GNOME/gnome-session/commit/a8896ccad65583885735a04205351f48a42f29ae

Geçici çözüm? Bu davranışı devre dışı bırakmak için bir ortam değişkeni ayarlayın: GSM_SKIP_SSH_AGENT_WORKAROUND=1. Bu, ortam ayar kodunu kısa devre yapar.

Ayrıca ssh-agent yapılandırmaya çalışan bu bulmak insanlar için: ssh-agent için benim systemd birim dosyasında, aşağıdaki satır var:

ExecStartPost=/usr/bin/bash -c "/usr/bin/systemctl --user set-environment SSH_AUTH_SOCK=$SSH_AUTH_SOCK GSM_SKIP_SSH_AGENT_WORKAROUND=1"

Tam dosya şöyle görünür:

[Unit]
Description=SSH Agent
IgnoreOnIsolate=true

[Service]
Type=forking
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -a $SSH_AUTH_SOCK
ExecStartPost=/usr/bin/bash -c "/usr/bin/systemctl --user set-environment SSH_AUTH_SOCK=$SSH_AUTH_SOCK GSM_SKIP_SSH_AGENT_WORKAROUND=1"

[Install]
WantedBy=default.target

Teşekkürler! Ubuntu v17.10 Artful Aardvark üzerinde, export GSM_SKIP_SSH_AGENT_WORKAROUND=1~ / .profile'ım eklemek ve yeniden başlatmak, daha önce v17.04 üzerinde çalışan yapılandırmamı düzeltti.
Stephen Niedzielski

Bu sadece Wayland'dan daha fazlasını etkiliyor gibi görünüyor, gnome-flashback + i3 kullanmaya çalışırken bunu yapıyorum.
dragon788

Bu saldırının Gnome 3.24 veya daha öncesine kadar çalıştığını lütfen unutmayın ( wiki.archlinux.org/index.php/GNOME/… )
Pablo Olmos de Aguilera C.

5

(OP'nin ortamı bilinmemektedir, bu nedenle burada verilen yollar Ubuntu makinemde bulunanlardır)

Gnome-keyring SSH_AUTH_SOCK'u nereye yerleştirir?

Başlıktaki ana soruyu cevaplamak için SSH_AUTH_SOCK, gnome-keyring tarafından /usr/share/upstart/sessions/gnome-keyring-ssh.confaşağıdaki komutla ayarlanır :

initctl set-env --global SSH_AUTH_SOCK=$SSH_AUTH_SOCK

initctlKılavuzdan alıntı :

initctl set-env VARIABLE[=VALUE]

İş ortamı tablosuna bir değişken ekler veya günceller. Bu şekilde ayarlanan değişkenler, bir iş için daha sonra başlayan tüm işlemlere uygulanır.

-g, --global

Global iş ortamı tablosunda ve çalışan tüm iş ortamı tablolarında çalışın.

SSH_AUTH_SOCK ilk etapta nereden geliyor?

Yukarıdaki initctlkomut, SSH_AUTH_SOCK ortam değişkeninin zaten mevcut olması koşuluna bağlıdır. Peki, bu bir tavuk ve yumurta durumu mu? Ne ayarlıyor?

SSH_AUTH_SOCK başlangıçta X oturumunun en başında başlatılan orijinal ssh aracısı tarafından ayarlanır. Kılavuzdan alıntı:

UNIX etki alanı soketi oluşturulur ve bu soketin adı SSH_AUTH_SOCKortam değişkeninde saklanır . Sokete yalnızca geçerli kullanıcı erişebilir.

ANCAK, gnome-keyring'in ssh bileşeninin yaptığı, kendisini mevcut ssh-ajanı ile değiştirmektir. Bu /run/user/.../keyring-.../sshnedenle, uygulamaların ssh-agent ile konuşmaması için SSH_AUTH_SOCK'u kendi soketi ile üzerine yazar .

Nasıl devre dışı bırakılır

Şimdi son cümleyi "O şeyi devre dışı bırakmak istiyorum" şeklinde cevaplayalım. OP'nin istediği, gnome anahtarlığında SSH_AUTH_SOCK'un ssh bileşeni tarafından üzerine yazılmasını devre dışı bırakmaktır. Başlangıçta ssh-agent tarafından ayarlanan "true" SSH_AUTH_SOCK değişkenini geri almak istiyorlar.

Ssh bileşeni yukarıda ( /usr/share/upstart/sessions/gnome-keyring-ssh.conf) belirtilen aynı başlangıç ​​komut dosyası tarafından başlatılır, ancak bir durumda: dize X-GNOME-Autostart-enabled=falseşu dosyalardan birinde bulunmamalıdır:

  • (sistem genelinde conf) /etc/xdg/autostart/gnome-keyring-ssh.desktop
  • (kullanıcı konf.) ~/.config/autostart/gnome-keyring-ssh.desktop

Bu nedenle, devre dışı bırakmak istiyorsanız, tek yapmanız gereken X-GNOME-Autostart-enabled=falsebu dosyalardan birine, tercihen HOME dizininizdeki bir çizgiye bir satır eklemektir .


Gnome anahtarlık için otomatik başlatma girişlerini devre dışı bırakmayı denedim ve değişken hala orada görünüyor, ancak mevcut olmayan bir sokete işaret ediyor (böylece anahtarlığın çalışmasını devre dışı bırakma, ancak değişken başka bir yere ayarlandı). Bir Archlinux makinesi kullanıyorum, bu yüzden hiçbir başlangıç ​​yok ve systemd'de değişkeni belirleyecek belirgin bir şey yok ..
André Borie

@ AndréBorie Ne Arch ne de systemd biliyorum. Soket yolunun yeni değeri nedir? Macihne'mde, ssh-agent tipik olarak bunu ayarlar /tmp/ssh-XXX/agent.PID. Ssh-agent hala işlem listenizde mi?
17'de xhienne

Yol tıpkı asıl sorudaki gibidir. SSH aracıları veya çalışan anahtarlıklar yoktur.
André Borie

Bu cevap gerçekten eski ama umarım bana da yardımcı olabilirsiniz unix.stackexchange.com/questions/422574/…
Ojs

3

https://wiki.archlinux.org/index.php/GNOME/Keyring#Disable_keyring_daemon_components

Alternatif bir SSH aracısı (örn. Ssh-aracısı veya gpg-aracısı) çalıştırmak istiyorsanız, GNOME Keyring'in ssh bileşenini devre dışı bırakmanız gerekir.

mkdir ~/.config/autostart
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/ &&
echo 'Hidden=true' >> ~/.config/autostart/gnome-keyring-ssh.desktop

Sonra oturumu kapatın.

Hafifçe düzenlenmiş, printf


Bu benim için Ubuntu 14.04'te de işe yarıyor.
pts

Bu 3.24 ve daha yeni modeller için geçerlidir.
Pablo Olmos de Aguilera C.

0

Gnome 3.18 itibariyle soket, ~/.cache/keyring-(some random string)/ssh

Bir tahmin olarak, gnome-keyring-daemon tarafından ayarlanıyor.

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.