클라이언트 구성
설정 ~/.ssh/config
호스트 항목을 설정하는 ssh
것은 정말 쉽고 많은 문제를 줄여줍니다. 예를 들면 다음과 같습니다.
Host digitaloceanbox
Hostname 111.111.111.111
User root
PubKeyAuthentication yes
IdentityFile /home/user/.ssh/digitalocean-rsa
ForwardX11 yes
Host github github.com
Hostname github.com
User git
PubKeyAuthentication yes
IdentityFile /home/user/.ssh/github-rsa
ForwardX11 no
예, 우리는 설정에서 digitaloceanbox
와 github
그리고 github.com
우리는 다음과 같은 명령을 할 수있는 :
ssh github
ssh digitaloceanbox
구성 파일에 지정된 것과 다른 사용자로 로그인 user@
하려면 시작 부분에 넣으 십시오.
ssh
키 생성
ssh-keygen -t rsa -b 4096 -C user@homemachine
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/digitalocean-rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/digitalocean-rsa
Your public key has been saved in /home/user/.ssh/digitalocean-rsa.pub.
The key fingerprint is:
SHA256:p9PYE/tveF2n//bLbp3ogYDtMtYEC5ziQiPxeob6fbo user@homemachine
메시지가 표시되면 생성하려는 개인 키의 전체 경로를 지정했습니다 ssh-keygen
. 또한 -C
원격 컴퓨터에서 키를 쉽게 식별 할 수 있는 주석 ( )을 정의했습니다 .
두 개의 파일이 생성됩니다 :
.ssh/digitalocean-rsa
.ssh/digitalocean-rsa.pub
- 공개 키. 이것은 인증하기 위해 서버에 저장하는 것입니다.
ssh
키 를 제공 할 때 .pub
버전 인지 확인하십시오 !! 에 ~/.ssh/config
추가 할 때 시스템에 추가 한 공개 키와 일치하는 올바른 개인 키를 추가하십시오.
서버 구성
대부분의 설치에는 공개 키 인증이 사용됩니다. 그러나 모든 일을 시작하면, 몇 가지 문제가 발생할 수 있습니다. OP가 문제가있는 곳에서 OP는 /root/.ssh/
다시 시작할 디렉토리를 삭제하는 것이 좋습니다 .
ssh
원격 시스템의 루트 사용자에 액세스하는 데 사용하지 않는 것이 좋습니다 . ssh
다른 사용자에게 로그인 한 다음 비밀번호 ( sudo su -
)를 사용하여 루트로 이관하는 것이 좋습니다 .
를 사용하여 호스트에 키 추가 ssh-copy-id
다른 사용자를 작성 ssh
하여 해당 사용자 또는 루트 사용자로 사용하기 로 결정했는지에 관계없이 다음은 ssh
서버에 키를 배치하는 권장 방법입니다 .
ssh-copy-id -i /home/user/.ssh/digitalocean-rsa.pub user@digitaloceanbox
이를 통해 sshd
필요한 권한으로 필요한 디렉토리와 파일을 만들 수 있습니다 . 따라서 권한을 엉망으로 만들거나 세부 정보를 기억할 필요가 없습니다. 도구를 사용하여 키를 업로드하십시오.
비밀번호 인증 비활성화
즉, 키를 입력하고 키를 사용하여 연결할 수 있는지 확인한 후에는 비밀번호 인증을 비활성화 sshd
하고 서비스를 다시 시작하는 것이 좋습니다 .
- 편집하다
/etc/ssh/sshd_config
PasswordAuthentication no
sudo systemctl restart sshd
신규 사용자는 어떻습니까?
암호 인증을 비활성화하면 새로운 사용자를 어떻게 키울 수 있습니까? 한 가지 방법은 템플릿 파일을 /etc/skel
디렉토리 에 추가하는 것 입니다. 한 명의 사용자를 키한 후에는 다음을 수행하십시오.
sudo cp -r .ssh/ /etc/skel/
ls /etc/skel/.ssh
/etc/skel/.ssh/
새로 작성된 모든 사용자에 대해 자동으로 키를 입력하지 않는 한 파일을 비워 두도록 파일을 편집하십시오 .
로 새 사용자를 만들면 sudo useradd -m newuser
해당 사용자는 .ssh/authorized_keys
을 (를) 편집 할 수 있으며 적절한 권한을 갖습니다.
디버깅
sshd
로그 파일을보고 연결이 실패하거나 거부되는 이유를 확인할 수 있습니다 .
sudo tail -f /var/log/auth.log
이 명령을 실행하는 동안 다른 터미널을 사용하여 로그인을 시도하십시오. 여러 번 제공된 메시지는 문제를 정확히 찾아 내거나 온라인에서 해결책을 찾을 수있을 정도로 충분합니다.