다시 로그인하지 않고 ssh-agent를 다시 시작하는 방법

다시 로그인하지 않고 ssh-agent를 다시 시작하는 방법

실수로 내 것을 죽였습니다 ssh-agent. 다시 연결하지 않고 어떻게 다시 시작할 수 있나요?

나는 이것을 시도했지만 작동하지 않습니다.

$ eval $(ssh-agent -s)
Agent pid 8055

그런 다음 이전 터미널 창에서 CTRL+SHIFT+N을 사용하여 새 Gnome 터미널을 열고 다음을 입력했습니다.

$ ssh-add
Could not open a connection to your authentication agent.

그러나 첫 번째 Gnome 터미널에서 새 Gnome 터미널을 열고 다음을 입력하면:

$ gnome-terminal &

그러면 이 새 창에서 에 연결할 수 있습니다 ssh-agent.

ssh-agentPC/서버에 다시 연결하지 않고도 내 모든 Gnome 터미널을 "볼" 수 있습니까 ?

답변1

생각처럼 작동하지 않습니다. ssh-agent는 구성을 덮어씁니다.

이 문제를 해결하려면——

에이전트 찾기:

eval "$(ssh-agent -s)"

에이전트 ID 9546

PID 종료:

kill -9 9546

그럼 네가 확인해봐

ssh [email protected]

ssh [email protected]

이제는 괜찮을 것입니다.

답변2

killall ssh-agent; eval "$(ssh-agent)"

답변3

다음 명령을 사용하여 다시 시작해 보십시오.

sudo service ssh restart

개인/공용 RSA SSH 키는 각각 ~/.ssh/id_rsa 및 ~/.ssh/id_rsa.pub에 있습니다. 공개 키를 다른 컴퓨터로 전송하여 공개 키 인증을 통해 해당 컴퓨터에 연결할 수 있습니다. 이 작업은 다음과 같이 ssh-copy-id를 통해 수행할 수 있습니다.

ssh-copy-id username@host

또는 공개 키(id_rsa.pub)를 서버의 /home/username/.ssh/authorized_keys 파일에 추가할 수 있습니다. 이는 기본적으로 ssh-copy-id가 수행하는 작업입니다.

답변4

문제는 원래 버전이 ssh-agent아마도 GUI 세션 시작 스크립트에 의해 시작되었고 SSH_AUTH_SOCK당시 생성된 환경 변수가 데스크탑 환경의 프로세스에 의해 상속되었다는 것입니다.

GUI를 통해 시작된 모든 새 프로세스는 이전 값을 계속 상속하며, 실행 중인 모든 Gnome 터미널 프로세스(및 그 안에 있는 셸)는 이미 이전 값을 상속합니다. SSH_AUTH_SOCK이전 값이 있는 모든 프로세스에 새 값을 푸시하고, 실행 중인 모든 ssh클라이언트 프로세스를 트리거하여 새 값을 사용하도록 자체적으로 재구성 해야 합니다 . 이를 수행할 수 있는 메커니즘이 없습니다.

대신에 할 수 있는 일은 이전 SSH_AUTH_SOCK값과 새 값을 적어 두는 것입니다.이전 프록시 소켓 대신 새 소켓을 가리키는 심볼릭 링크를 만듭니다..

다시 말해서:

ln -sf <new SSH_AUTH_SOCK value> <old SSH_AUTH_SOCK value>

새 에이전트는 여전히 시작된 셸의 하위 프로세스이며 해당 셸이 종료되면 종료될 수 있다는 점을 기억하세요.

관련 정보