암호가없는 22 이외의 일부 포트에서 SSH 원격 서버 다음 사용자에게

나는 보통 원격 서버에 연결

ssh user@server.com -p 11000

그런 다음 사용자에게 매번 비밀번호를 제공합니다. ssh를 사용하여 연결할 때마다 비밀번호를 입력하지 않으려면 어떻게해야합니까?



답변

먼저 다음 을 입력하십시오 ~/.ssh/config.

Host server
HostName server.com
Port 11000
User user

를 수행 ssh server한 다음 비밀번호를 입력 할 수 있습니다.

두 번째로~/.ssh/ 이름이 id_rsaand 인 파일이 있는지 확인 하십시오 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

이를 통해 컴퓨터 부팅시 한 번만 암호를 입력하면됩니다.


답변

에 돌려 키 기반 인증 .


답변

phunehehe의 대답에 보충으로, 참조 젠투 리눅스 키 체인 가이드 에 대한 안내를 위해 키 체인 . 키 체인은 ssh-agent 도 사용합니다 . ssh-agent 데몬은 reuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in안내서를 인용하기 위해 암호 구를 사용 가능하게합니다 (ssh-agent 데몬이 죽으면 사용할 수 없게됩니다) .


답변