나는 보통 원격 서버에 연결
ssh user@server.com -p 11000
그런 다음 사용자에게 매번 비밀번호를 제공합니다. ssh를 사용하여 연결할 때마다 비밀번호를 입력하지 않으려면 어떻게해야합니까?
나는 보통 원격 서버에 연결
ssh user@server.com -p 11000
그런 다음 사용자에게 매번 비밀번호를 제공합니다. ssh를 사용하여 연결할 때마다 비밀번호를 입력하지 않으려면 어떻게해야합니까?
답변:
먼저 다음 을 입력하십시오 ~/.ssh/config
.
Host server
HostName server.com
Port 11000
User user
를 수행 ssh server
한 다음 비밀번호를 입력 할 수 있습니다.
두 번째로~/.ssh/
이름이 id_rsa
and 인 파일이 있는지 확인 하십시오 id_rsa.pub
. 그렇지 않은 경우 키가 설정되어 있지 않으므로를 사용하여 쌍을 생성해야합니다 ssh-keygen
. 키에 암호를 부여하거나 부여하지 않을 수 있습니다. 생성 된 파일 id_rsa.pub
은 다음과 같아야합니다.
ssh-rsa lotsofrandomtext 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
이를 통해 컴퓨터 부팅시 한 번만 암호를 입력하면됩니다.
User user
줄을 추가 할 수 있습니다 ~/.ssh/config
.
에 돌려 키 기반 인증 .
ssh -P 11000
phunehehe의 대답에 보충으로, 참조 젠투 리눅스 키 체인 가이드 에 대한 안내를 위해 키 체인 . 키 체인은 ssh-agent 도 사용합니다 . ssh-agent 데몬은 reuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in
안내서를 인용하기 위해 암호 구를 사용 가능하게합니다 (ssh-agent 데몬이 죽으면 사용할 수 없게됩니다) .