나는 이것이 많은 사람들에게 기본적인 질문이라는 것을 알고 있지만 SSH 서버에 대한 비밀번호 없는 로그인을 어떻게 설정합니까? Ubuntu Server Guide에 따르면 내 호스트(연결 중인 호스트)에서 키 쌍을 생성한 서버로 키를 가져오기만 하면 됩니다. 그 반대의 일이 일어났습니다. 원래 연결하려고 했던 서버(Ubuntu)에서 호스트 시스템(macOS)으로 SSH를 통해 연결할 수 있습니다. 그래도 비밀번호 대신 비밀번호를 물어보더군요. 점은 무엇인가? 나는 여기의 지침을 따랐습니다.
https://help.ubuntu.com/community/SSH/OpenSSH/Keys
쓸모 없는. 이것이 작동하지 않는 이유에 대한 통찰력을 제공해 주시면 감사하겠습니다.
감사해요
답변1
컴퓨터에서 키를 생성해야 합니다.현지의머신에 공개 키를 서버로 보냅니다. 대신 Ubuntu 서버에 개인 키를 설정하고 Mac에 공개 키를 추가합니다.
~/.ssh/authorized_keys
먼저, 서버가 자신의 컴퓨터에 SSH로 접속할 수 없어야 하므로 서버의 SSH 키를 제거해야 합니다 .
키를 생성하려면 ssh-keygen
로컬 컴퓨터에서 실행하면 됩니다. 무엇을 하고 있는지 모르는 경우가 아니면 모든 옵션을 기본값으로 두십시오. 키 비밀번호를 입력하세요. SSH 키가 암호화되어 도난으로부터 보호됩니다.
시스템 관리자 팁:
ssh-keygen -b 4096
더 긴(더 안전한!) 키를 구축 하기 위한 것입니다 .
키 쌍을 생성한 후 연결하려는 서버에 공개 키를 업로드해야 합니다. 기본 옵션을 수락하면 공개 키를 찾을 수 있습니다 ~/.ssh/id_rsa.pub
. 이 파일의 내용을 가져와 ~/.ssh/authorized_keys
서버에 추가합니다.
시스템 관리자 팁:어떤 경우에도 개인 키를 누구에게도, 어떤 것에도 제공하지 마십시오. 그것은 알려져있다사적인열쇠가 있는 데에는 이유가 있습니다.
서버가 올바르게 구성되어 있으면 SSH 키를 사용하여 로그인하는 데 충분합니다. 그러나 서버가 올바르게 구성되지 않았을 수 있습니다. /etc/ssh/sshd_config
여기에 표시된 것과 정확히 일치하도록 서버에 다음 세 줄이 있는지 확인하세요 .
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
이러한 행이 존재하지 않거나 위와 같이 나타나지 않으면 nano
또는 유사한 명령을 사용하여 파일을 편집하십시오. 이 파일을 편집하려면 관리자( ) 권한이 필요합니다 sudo
. 구성을 편집해야 하는 경우 SSH 서비스 다시 시작을 사용해야 합니다 sudo systemctl restart ssh.service
.
시스템 관리자 팁:
PasswordAuthentication
보안 강화를 위해no
해당 행을 in 으로 변경하여 서버에서 비밀번호 인증을 비활성화 할 수 있습니다/etc/ssh/sshd_config
.
서버 구성에 따라 이 단계가 가장 정확하지 않을 수 있습니다. 관리자가 있는 경우 관리자에게 문의하세요. 지침은 플랫폼이나 구성에 따라 다를 수 있습니다. 또한 해당 플랫폼에 대한 명령 대안에 대한 관련 문서를 확인하십시오(예를 들어 ssh-keygen
Windows에서는 PuttyGen을 대신 사용하십시오).
그래도 문제가 해결되지 않으면 로그를 자세히 조사해야 합니다. SSH를 사용하여 서버에 연결하고 ssh -vvv user@host
서버 SSH 로그를 봅니다 /var/log/auth.log
.