실수로 내 것을 죽였습니다 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-agent
PC/서버에 다시 연결하지 않고도 내 모든 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>
새 에이전트는 여전히 시작된 셸의 하위 프로세스이며 해당 셸이 종료되면 종료될 수 있다는 점을 기억하세요.