>  기사  >  운영 및 유지보수  >  계정과 비밀번호를 입력하지 않고 원격 호스트에 연결할 수 있도록 SSH 서비스를 구성하는 방법

계정과 비밀번호를 입력하지 않고 원격 호스트에 연결할 수 있도록 SSH 서비스를 구성하는 방법

齐天大圣
齐天大圣원래의
2020-11-20 11:40:023391검색

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를 입력하는 것입니다.

계정과 비밀번호를 입력하지 않고 원격 호스트에 연결할 수 있도록 SSH 서비스를 구성하는 방법

두 번째 단계는 사용자 인증을 클릭한 후 방법을 선택하는 것입니다. 공개 키로. 그런 다음 사용자 이름을 입력하고 여기에 루트를 입력합니다. 마지막으로 키를 선택하세요. 여기서는 공개 키가 아닌 개인 키를 선택해야 합니다.

계정과 비밀번호를 입력하지 않고 원격 호스트에 연결할 수 있도록 SSH 서비스를 구성하는 방법

이 두 단계까지 설정하시면 비밀번호 없는 로그인이 완료됩니다.

클라이언트는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.