모든 터미널에서 ssh-agent를 작동시키는 방법은 무엇입니까?

모든 터미널에서 ssh-agent를 작동시키는 방법은 무엇입니까?

ssh-copy-id를 사용하여 일부 서버에 대한 자동(비밀번호 없는) SSH 로그인을 설정했습니다. ssh-agent실행되는 터미널에서만 실행할 수 있습니다. ssh-add내 모든 터미널에서 이 기능을 작동시키려면 어떻게 해야 합니까 ?

물론 저는 비밀번호가 없는 SSH 키를 좋아하지 않습니다.

답변1

그래픽 세션에 로그인한 경우 ssh-agent세션 시작 중에 시작되도록 예약하십시오. 일부 배포판에서는 이미 이 작업을 수행합니다. 없는 경우 ssh-agent세션 시작 스크립트 또는 창 관리자에서 실행되도록 예약하세요. 이를 수행하는 방법은 데스크탑 환경 및 창 관리자에 따라 다릅니다. 예를 들어 창 관리자를 수동으로 시작하는 경우 호출을 my_favorite_wmby 로 바꾸면 됩니다 ssh-agent my_favorite_wm.

이 파일은 모든 새로운 대화형 쉘에서 실행되므로 ssh-agent시작 하지 마십시오 .bashrc. .zshrc시작할 위치 는 또는 ssh-agent와 같은 세션 시작 파일입니다 ..profile.xsession

모든 프로세스에서 동일한 SSH 에이전트를 사용하려면 어디서 로그인하든 상관없이 무작위로 이름이 지정된 소켓을 사용하는 대신 항상 동일한 소켓 이름을 사용하도록 만들 수 있습니다. 예를 들어 다음을 넣을 수 있습니다 ~/.profile.

export SSH_AUTH_SOCK=~/.ssh/ssh-agent.$HOSTNAME.sock
ssh-add -l 2>/dev/null >/dev/null
if [ $? -ge 2 ]; then
  ssh-agent -a "$SSH_AUTH_SOCK" >/dev/null
fi

답변2

다음과 같은 프로그램을 원할 수도 있습니다.열쇠고리, 이 목적을 위해 정확하게 설계되었습니다. 매뉴얼 페이지에서:

DESCRIPTION
   keychain is a manager for ssh-agent, typically run from ~/.bash_profile.
   It allows your shells and cron jobs to share a single ssh-agent process.

답변3

데스크탑 환경이나 창 관리자에 적용해 보세요. 과거에 custom 을 사용하여 이 작업을 수동으로 수행했을 때 ~/.Xclients다음 줄을 마지막 줄로 사용했습니다.

ssh-agent mywindowmanger

자체 설정 옵션이 있는 일부 DE가 있을 수 있지만 제 생각에는 (예를 들어) KDE에는 없습니다. 현재 내 코드는 /etc/X11/xinit/xinitrc-commonDE/WM에 관계없이 모든 사용자에 대해 활성화되어 있으므로 코드에서 실행되는 것 같습니다(아마도 fedora에 의해 수행됨). 상위 프로세스 명령은 이지만 $HOME/.Xclients파일은 참조되지 않습니다 ssh-agent( /etc/X11/xinit/xinitrc-common).

가 없으면 ~/.Xclients이 줄만 사용하여 만들 수 있지만 DE/WM을 시작하려면 명령을 알아야 합니다.

관련 정보