Linux Mint를 사용하고 있으며 로그인 할 때 자동으로 잠금을 해제하기 위해 그놈 키 링을 얻을 수 없었습니다.
내 문제의 증상은 다음과 같습니다.
$ ssh-add
Identity added: /home/me/.ssh/id_rsa (/home/me/.ssh/id_rsa)
$ git pull
WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-Nmf3J3/pkcs11: No such file or directory
암호 입력없이 git이 푸시 / 풀을 할 수 있도록하려면 어떻게해야합니까?
나는 그놈 키링과 ssh-agent와 함께 여러 가지가 있다는 것을 알고 있지만 그것을 못 박았습니다.
ssh-add
세션 중에 실행 하면 더 이상 SSH / git에 대한 암호를 요구하지 않습니다.
문제는 ssh-add
각 세션 중에 실행해야한다는 것입니다 -로그인 할 때 Gnome의 키 링을 잠금 해제하는 방법이 없습니다.
$ export | grep GNOME
GNOME_KEYRING_CONTROL=/tmp/keyring-hjMM4V
GNOME_KEYRING_PID=1961
첫 번째 편집과 동일한 세션에서 다시 발생했습니다. 내가 그랬어 git pull
하고 있어요 WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-hjMM4V/pkcs11: No such file or directory
.
$ env | grep SSH
SSH_AGENT_PID=2116
SSH_AUTH_SOCK=/tmp/ssh-OACxJMBY2038/agent.2038
$ ps -fp $SSH_AGENT_PID
UID PID PPID C STIME TTY TIME CMD
eoin 2116 2038 0 09:47 ? 00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager
답변
일어날 예정은 다음과 같습니다.
gnome-keyring 데몬 (ssh 에이전트 역할도 함)의 일부인 gnome 세션을 시작하고 해당 gnome 세션 중에 시작된 모든 환경이 해당 ssh 에이전트에 연결하는 방법에 대한 정보로 업데이트됩니다. 그래픽으로 로그인 할 때 발행 한 비밀번호는 기본 키링을 잠금 해제하는 데 사용됩니다.
gnome-keyring을 ssh-agent로 사용하는 경우와 같은 다른 에이전트를 사용하고 싶지 않습니다 ssh-agent
.
X 세션이 종료되면 그놈 키링도 종료됩니다. 그러나 tmux 세션은 남아 있습니다. 그런 다음 다른 gnome-keyring 또는 ssh-agent를 시작 tmux
하더라도 새 소켓의 경로로 환경을 업데이트하지 않으면 이미 시작된 프로세스 환경과 통신 할 수 없습니다.
당신이 할 수있는 일은 :
gnome-keyring-daemon -r > ~/.gkr
그리고 할 . ~/.gkr
새 그놈 키링을 사용하고자하는 모든 쉘에
gnome-keyring-daemon이 연결할 DISPLAY를주의하십시오.
답변
내가 시도하는 첫 번째 방법 apt-get install ssh-askpass-gnome
은 패키지 (또는 대체 askpass 프로그램)가 설치되어 있지 않으면 키를 잠금 해제해야 할 때 gnome에서 암호를 묻는 메시지를 표시 할 수 없습니다.
당신은 또한 당신이해야 DISPLAY
제대로 변수 세트를 :
$ echo $DISPLAY
:0.0
또한 어떻게 터미널을 시작합니까? 터미널 세션을 시작하는 방법과이 세션의 상속 여부에 문제가있을 수 있습니다 gnome-session
. gnon-gnome 프로그램을 사용하여 키 바인딩을 설정할 때 발생할 수 있습니다.
사용 gnome-terminal
한다고 가정하면를 사용하여 확인할 수 있습니다 pstree
. 올바른 상속이 발생하는 것을 볼 수 있습니다.
$ pgrep gnome-terminal | xargs -l1 pstree -s
init(1)───lightdm(1643)───lightdm(26912)───gnome-session(27049)───xmonad-x86_64-l(27139)───gnome-terminal(26036)─┬─bash(26041)
├─gnome-pty-helpe(+
├─{gnome-terminal}+
├─{gnome-terminal}+
└─{gnome-terminal}+
이 세션에서는 다음에서 상속되지 않습니다 gnome-session
.
$ pgrep gnome-terminal | xargs -l1 pstree -s
init(1)───sh(25919)───gnome-terminal(25920)─┬─bash(25927)
├─gnome-pty-helpe(25926)
├─{gnome-terminal}(25921)
├─{gnome-terminal}(25924)
└─{gnome-terminal}(25928)
또한 다음 ssh-agent
으로 시작되는지 확인하십시오 gnome-session
.
$ pgrep ssh-agent | xargs -l1 pstree -s
init(1)───lightdm(1643)───lightdm(26912)───gnome-session(27049)───ssh-agent(27091)
답변
암호로 보호 된 SSH 키를 영구적으로 저장하는 데 문제가 있다고 생각합니다.
다음 자료를 살펴보십시오.
답변
이것을 .bash_profile에 추가하십시오.
if [ -n "$SSH_AUTH_SOCK" \
-a "${SSH_AUTH_SOCK::13}" = "/tmp/keyring-" \
-a ! -L "$SSH_AUTH_SOCK" ]
then
OLD_AUTH_SOCK="$SSH_AUTH_SOCK"
eval `ssh-agent`
mv "$OLD_AUTH_SOCK" "$OLD_AUTH_SOCK"~
ln -sfn "$SSH_AUTH_SOCK" "$OLD_AUTH_SOCK"
SSH_AUTH_SOCK="$OLD_AUTH_SOCK"
fi