원격 서버에서 22가 아닌 포트를 SSH로 연결하세요. 비밀번호는 필요하지 않습니다.

원격 서버에서 22가 아닌 포트를 SSH로 연결하세요. 비밀번호는 필요하지 않습니다.

나는 보통 다음을 사용하여 원격 서버에 연결합니다.

SSH[이메일 보호됨]-p 11000

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

답변1

첫 번째, 이것을 넣어~/.ssh/config:

Host server
HostName server.com
Port 11000
User user

ssh server그러면 비밀번호를 입력 하실 수 있습니다 .

두번째, 이름이 및 인 파일이 ~/.ssh/있는지 확인하십시오 . 그렇지 않은 경우 키를 설정하지 않은 것이므로 generate a pair 를 사용해야 합니다 . 키에 대한 비밀번호를 설정하거나 비밀번호를 설정하지 않을 수 있습니다. 생성된 파일은 다음과 같아야 합니다.id_rsaid_rsa.pubssh-keygenid_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가이드를 인용하면 키체인은 사용할 수 없습니다.

관련 정보