나는 보통 다음을 사용하여 원격 서버에 연결합니다.
SSH[이메일 보호됨]-p 11000
그런 다음 매번 사용자에게 비밀번호를 제공하십시오. SSH를 사용하여 연결할 때마다 비밀번호를 입력하지 않으려면 어떻게 해야 합니까?
답변1
첫 번째, 이것을 넣어~/.ssh/config
:
Host server
HostName server.com
Port 11000
User user
ssh server
그러면 비밀번호를 입력 하실 수 있습니다 .
두번째, 이름이 및 인 파일이 ~/.ssh/
있는지 확인하십시오 . 그렇지 않은 경우 키를 설정하지 않은 것이므로 generate a pair 를 사용해야 합니다 . 키에 대한 비밀번호를 설정하거나 비밀번호를 설정하지 않을 수 있습니다. 생성된 파일은 다음과 같아야 합니다.id_rsa
id_rsa.pub
ssh-keygen
id_rsa.pub
ssh-rsa 임의의 텍스트가 많이 있음 user@local
제삼, 서버에 SSH를 통해 연결하고 ~/.ssh/authorized_keys
파일이 없으면 파일을 생성합니다. 그런 다음 앞서 생성한 콘텐츠를 ~/.ssh/id_rsa.pub
여기에 추가하세요. 이는 파일 내용을 클립보드에 복사한 다음 ~/.ssh/authorized_keys
텍스트 편집기에서 열고 내용을 붙여넣는 것을 의미할 수 있습니다.
또는 명령을 사용하십시오 ssh-copy-id server
( server
의 이름으로 바꾸십시오 ~/.ssh/config
). 이는 위와 동일한 작업을 수행합니다. 가끔 ssh-copy-id
막히는 걸 볼 수 있어서 별로 마음에 안 드네요.
ssh server
이제 개인 키를 비밀번호로 보호하기로 선택하지 않는 한 을 사용하여 ssh를 사용할 수 있습니다 . 일반적으로 비밀번호를 사용하지 않는 경우 전체 디스크 암호화와 같은 다른 수단을 통해 개인 키를 보호해야 합니다.
네번째(개인 키를 비밀번호로 보호하는 경우에만 필요)이것을 넣어~/.bashrc
:
start_ssh_agent() {
# Try to use an existing agent
save=~/.ssh-agent
if [[ -e "$save" ]]
then
. "$save" > /dev/null
fi
# No existing agent, start a new one
if [[ -z "$SSH_AGENT_PID" || ! -e "/proc/$SSH_AGENT_PID" ]]
then
ssh-agent > "$save"
. "$save" > /dev/null
ssh-add
fi
}
start_ssh_agent
이렇게 하면 컴퓨터를 시작할 때마다 비밀번호를 한 번만 입력하면 됩니다.
답변2
이동키 기반 인증.
답변3
phunehehe의 답변 외에도 다음을 참조하세요.젠투 리눅스 키체인 가이드가이드 받기열쇠고리. 키체인도 사용됨SSH 에이전트. ssh-agent 데몬은 비밀번호를 사용할 수 있게 해주지만(ssh-agent 데몬이 종료되면 사용할 수 없게 됨) reuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in
가이드를 인용하면 키체인은 사용할 수 없습니다.