Ssh 프로토콜은 계정 이름과 비밀번호를 입력하여 원격 서버에 연결할 수 있다는 것을 알고 있습니다. 그러면 계좌번호와 비밀번호를 입력하지 않고 바로 로그인할 수 있나요? 대답은 '예'입니다. 일상 업무에서도 이러한 요구가 일반적입니다. 예를 들어, 오프사이트 백업을 위해 scp를 사용하고 crontab에 scp를 쓰고 싶지만 crontab에서 계정과 비밀번호를 입력할 수 없는 경우에는 계정과 비밀번호 없이 로그인해야 합니다.
ssh는 공개 키와 개인 키를 사용하는 비대칭 암호화 프로토콜입니다. 공개 키는 정보를 암호화하는 데 사용됩니다. 각 호스트는 자체 홈 디렉터리의 .ssh 디렉터리에 있는 Known_hosts 파일에 다른 호스트의 공개 키를 저장합니다. 계정과 비밀번호로부터 자유로워지고 싶다면, 핵심은 바로 이 공개키입니다.
서버 호스트 SERVER와 클라이언트 CLIENT가 있다고 가정해 보겠습니다. 클라이언트는 로그인하지 않고 SERVER에 연결하려고 합니다. 그런 다음 클라이언트의 공개 키를 SERVER 시스템의 ~/.ssh/authorized_keys 끝에 추가하세요. 다음은 두 가지 상황에서 비밀번호 없이 로그인하는 방법을 보여줍니다.
클라이언트가 Windows 시스템입니다
클라이언트가 Linux 시스템입니다
클라이언트가 Windows 시스템입니다
첫 번째 단계는 비밀 키 쌍 생성으로 이동하는 것입니다. 여기서는 git 도구를 사용하여 비밀 키 쌍을 생성합니다(Windows 시스템에 git을 설치하는 방법은 직접 확인할 수 있습니다. 매우 간단합니다. 다음 단계를 따르세요. 단계).
ssh-keygen
git 터미널에 위 명령을 입력하면 일련의 프롬프트 메시지가 표시됩니다. 직접 ENTER 키를 입력하세요(총 3번 Enter를 입력해야 합니다). 그 후 $HOMT/.ssh/ 디렉터리에서 공개 키와 개인 키를 볼 수 있습니다. pub로 끝나는 것이 공개 키입니다.
admin@LAPTOP-7P19B9SH MINGW64 ~/.ssh $ ll total 13 -rw-r--r-- 1 admin 197121 1679 5月 3 2019 id_rsa -rw-r--r-- 1 admin 197121 398 5月 3 2019 id_rsa.pub
다음으로 공개 키를 서버에 업로드한 후 ~/.ssh/authorized_keys에 공개 키 정보를 추가합니다.
# cat id_rsa.pub >> .ssh/authorized_keys
다음은 xshell을 사용하여 비밀번호 없이 로그인하는 방법을 보여줍니다.
첫 번째 단계는 원격 호스트의 IP를 입력하는 것입니다.
두 번째 단계는 사용자 인증을 클릭한 후 방법을 선택하는 것입니다. 공개 키로. 그런 다음 사용자 이름을 입력하고 여기에 루트를 입력합니다. 마지막으로 키를 선택하세요. 여기서는 공개 키가 아닌 개인 키를 선택해야 합니다.
이 두 단계까지 설정하시면 비밀번호 없는 로그인이 완료됩니다.
클라이언트는 Linux 호스트입니다
첫 번째 단계는 비밀 키 쌍을 생성하는 것입니다
# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:GCyx2cSYE6yR7xCuUVOF0Omvp5fEoxv0Y2wOQvMRB98 root@lijia The key's randomart image is: +---[RSA 2048]----+ | .*=Oo | | * OX.. | | o B=.* E | |. + o+ o | | ooooo. S | |.. +.+= | | . ++*o | | .o*+. | | o=. | +----[SHA256]-----+
두 번째 단계는 방금 생성된 공개 키를 다른 시스템으로 전송하는 것입니다
# ssh-copy-id root@121.***.***.64 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@121.196.12.64's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@121.***.***.64'" and check to make sure that only the key(s) you wanted were added.
세 번째 단계는 로그하는 것입니다 원격 호스트에 접속
# ssh root@121.196.12.64 Welcome to Alibaba Cloud Elastic Compute Service ! Activate the web console with: systemctl enable --now cockpit.socket Last login: Fri Nov 20 10:28:37 2020 from 111.38.123.86 # 免密码登录成功
더 많은 관련 기술 기사를 보려면 linux 시스템 튜토리얼 칼럼을 방문하세요!
위 내용은 계정과 비밀번호를 입력하지 않고 원격 호스트에 연결할 수 있도록 SSH 서비스를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!