매번 ssh-add를 입력하지 않는 방법


11

원격 컴퓨터에 ssh 할 때마다 암호를 입력 할 필요가 없도록 ssh-agent 를 설정하는 방법에 대한 온라인 설명서를 읽고 따랐습니다 .

그러나 ssh-agent 의 도움으로 ssh-add쉘을 다시 시작할 때마다 여전히해야합니다 . 그런 ssh-add다음 개인 키의 잠금을 해제하기 위해 암호를 입력하라는 메시지가 표시됩니다.

Enter passphrase for key '/home/xx/.ssh/id_rsa':

원격 컴퓨터의 암호를 입력하는 대신 개인 키의 암호를 입력하라는 메시지가 표시됩니다. 연옥 밖으로 나가서 나중에 지옥에서 나 자신을 발견했습니다. 내가 로그인하고 입력 할 때마다 id_rsa가 세션의 ssh-agent에만 일시적으로 추가되는 것처럼 보입니다ssh-add -l . 나는 얻다:

The agent has no identities.

ssh-agent에 키 (id_rsa)를 영구적으로 저장하는 방법을 물어볼 수 있습니까? 감사

편집 : 이것은 내가 한 일입니다 ssh-agent. 다음 블록을 추가했습니다.~/.bash_profile

SSHAGENT=/usr/bin/ssh-agent                                                                                        
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "SSHAGENT" ]; then
  eval `$SSHAGENT $SSHAGENTARGS`
  trap "kill $SSH_AGENT_PID" 0
fi

로그인 할 때마다 또는 쉘 창을 열 때마다 암호를 입력해야합니까? 온라인 문서를 따랐지만 ssh-agent는 우분투에서 즉시 작동하므로 아무 것도하지 않아도됩니다. 정확히 무엇을 했습니까?
Gilles 'SO- 악한 중지

원격 컴퓨터에 ssh 할 때마다 암호를 입력해야합니다. 그러나 원격 컴퓨터에 액세스하는 것은 암호가 아니며 개인 키 (id_rsa)의 잠금을 해제하는 암호입니다.
ssgao

나는 그것이 당신의 열쇠 암호라는 것을 알고 있습니다. 내가 묻는 것은 ssh-agent를 설정하기 위해 수행 ssh-add한 작업이며, 입력 한 쉘 창보다 실행 시간이 오래 지속 되는지 여부 입니다.
Gilles 'SO-stop

시스템에서 로그 아웃 할 때까지 효과가 지속됩니다 (로컬). 나는 내가 한 일을 ssh-agent포스트에 넣었다 .
ssgao

정상적인 동작처럼 들립니다. 키를 잠금 해제하려면 세션 당 한 번 암호를 입력해야합니다. 잠금 해제 된 키가 어딘가에 저장된 경우, 키에 암호 문구를 사용한다는 목적을 잃게됩니다. 저장된 잠금 해제 키를 얻는 사람은 누구나이를 사용할 수 있습니다. 다른 것을 기대하고 있었습니까? 다음에 다시 부팅 할 때까지 키를 사용할 수 있도록 로그 아웃 한 후 키를 메모리에 저장 하시겠습니까?
Gilles 'SO- 악의를 멈춰라'

답변:


6

키 체인을 설치했습니다.

sudo apt-get 설치 키 체인

bash를 실행하는 경우 .bash_profile에 몇 가지 명령을 추가해야합니다. .bash_profile이 없으면 홈 폴더에 명령을 작성하십시오. 다음 줄을 추가하십시오.

### START-Keychain ###
# Let  re-use ssh-agent and/or gpg-agent between logins
/usr/bin/keychain $HOME/.ssh/id_dsa
source $HOME/.keychain/$HOSTNAME-sh
### End-Keychain ###

근무일이 시작되면 로그인합니다. 터미널을 열면 비밀번호 문구를 입력하라는 메시지가 한 번 표시됩니다. 다른 모든 새로운 터미널과 연결에 대해서는 비밀번호 문구를 다시 묻지 않습니다.


4
이것은 ssh-add터미널 에서 입력 하는 것과 어떻게 다릅니 까?
ssgao

나중에 그러나 u는 것이이 두 단계를 잘라 것하고 ... SSH-추가 매번 입력하기 -> 평가 "$ (SSH 에이전트)"및 SSH-추가
abhishek

1

찾고있는 것은 덜 안전하지만 ssh-agent없이 공개 키 인증을 사용하여 수행 할 수 있습니다. 보다 안전한 옵션은 ssh 서버에서 비밀번호 인증을 끄는 동안 암호 문구와 함께 공개 키 인증을 사용하는 것이지만 요청한 것은 아닙니다. 대신이 작업을 수행하기로 결정한 경우이 답변의 맨 아래에있는 링크를 참조하십시오.

암호 문구를 요구하지 않고 ssh를 사용하려면 암호 문구 필드를 비워두고 키 페어를 생성해야합니다.

키 쌍을 이미 생성했는지 확인하려면 ~ / .ssh 디렉토리에서 id_rsa 및 id_rsa.pub 파일을 확인하십시오. 이미 존재하는 경우 삭제하거나 이동하여 새 키 쌍을 만들 수 있습니다.

서버를 삭제하면 서버에서 비밀번호 인증이 꺼져 있으면 이전 키를 사용하여 인증하는 모든 ssh 서버에 액세스 할 수 없게됩니다.

새 키 쌍을 만들려면 다음 명령을 실행하십시오.

ssh-keygen -t rsa

키의 기본 위치를 승인하고 암호 문구를 비워 두십시오.

연결하려는 ssh 서버에 공개 키를 제공하려면 다음 명령을 사용하십시오.

ssh-copy-id -i ~/.ssh/id_rsa.pub username@remotehost

이 단계를 완료하면 사용중인 컴퓨터의 비밀번호없이 원격 서버에 로그인 할 수 있습니다.

참조 : http://tombuntu.com/index.php/2008/02/20/public-key-authentication-for-ssh-made-easy/


0

얼마 전에, 나는 갑자기 ssh 키를 잠금 해제하기 위해 암호 문구를 요구하기 시작했습니다 git push. 암호 문구 요청을 중단하려면 SSH 키 에이전트 (GNOME 키 링 : SSH 에이전트)를 시작 응용 프로그램에 추가하면 충분합니다 (필자의 경우 확인란을 선택하기 만하면 됨).

여기에 이미지 설명을 입력하십시오


어떻게해야하는지, 왜 문제가 해결되는지에 대한 답을 좀 더 자세히 설명해 주시겠습니까? 감사.
바이트 사령관
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.