Linux 클라이언트 컴퓨터에서 SSH를 통해 원격으로 Mac에 액세스하려고합니다 (이 Mac에 물리적으로 액세스 할 수 있습니다). 나의 목표는 네트워크 외부에서이 Mac에 액세스하는 것입니다. 라우터에서 포트 포워딩이 설정됩니다. 클라이언트 컴퓨터 ssh user@ip
에서 공개 IP를 사용할 수 있고 Mac에 접속할 수 있으므로 포트 전달이 작동합니다.
이제 SSH 키를 설정하고 싶습니다. 클라이언트 컴퓨터에서 SSH 키를 생성했지만 Mac 설정에서 SSH 데몬을 먼저 얻고 싶었습니다. 편집 /etc/ssh_config
하고 설정했습니다 PasswordAuthentication no
. 나는이 명령을 사용하여 SSH를 다시 시작 : sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
다음 sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
. 클라이언트에서 다시 SSH를 시도하면 여전히 비밀번호를 묻습니다.
나는 이 게시물을 보았고 대답 UsePAM no
에서 구성 파일에 추가 하고 서비스를 launchctl
다시 시작 했습니다. 여전히 비밀번호를 묻는 메시지가 나타납니다.
나는 또한 여기 에 해결책을 시도했다 . 여전히 비밀번호를 묻는 메시지가 나타납니다.
ssh_config
암호를 요구하지 않고 SSH 키만 허용하도록 어떻게 설정 합니까? 데몬을 제대로 다시 시작하지 않습니까? 누락 된 다른 단계가 있습니까?
답변
잘못된 구성 파일을 편집하고있었습니다! 대신에 /etc/ssh_config
편집했습니다 private/etc/sshd_config
. /etc/sshd_config
@GhostLyrics의 업데이트 된 답변에 따라 편집하면 이것이 아마도 효과가 있었을 것이라고 생각 하지만 아직 테스트하지 않았으므로 확실하게 말할 수는 없습니다. 그 후 서비스를 다시 sudo launchctl stop com.openssh.sshd
시작한 다음 sudo launchctl start com.openssh.sshd
원하는 동작을 얻을 수있었습니다. 다음은 관련 정보를 찾은 리소스입니다. https://superuser.com/questions/364304/how-do-i-configure-ssh-on-os-x
변경 한 구성 옵션은 다음과 같습니다.
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
그 후 클라이언트 컴퓨터에서 SSH 키를 성공적으로 생성하고 공개 키를 ~/.ssh/authorized_keys
Mac 으로 옮기고 해당 파일의 권한을 644로 설정했습니다.
이러한 권한은 내 공개 키에 대한 것 입니다. 내 개인 키의 권한 내 클라이언트 컴퓨터에 600으로 설정됩니다. 폴더 에 공개 키와 개인 키가 모두 있고 시스템에 여러 사용자가있는 경우이 방법 이 중요합니다 ~/.ssh
. 귀하의 경우 개인 키의 권한이 644로 설정 한 후 모든 사용자는 개인 키를 읽고 당신을 가장 할 수있다. 또한 ~/.ssh
폴더에 대한 권한은 700이어야합니다.
답변
/etc/ssh/ssh_config
홈 디렉토리에 더 구체적인 파일이없는 경우 사용되는 클라이언트의 구성 파일입니다. 편집하려는 /etc/ssh/sshd_config
것은 서버를위한 것입니다.
당신은 아마 설정할 것 PermitRootLogin without-password
(또는 no
)하고 PasswordAuthentication no
있다.
업데이트 : 당신은 요세미티를 실행하고 있기 때문에, 파일이되고 /etc/sshd_config
이 답변에 따라 : https://apple.stackexchange.com/a/167405/11135
설정시 여전히하라는 메시지가 왜 더 정교하기 PasswordAuthentication no
에 /etc/ssh/ssh_config
당신이 구성을 이해하는 것이 중요하다. ” SSH를 통해 나가는 연결을 할 때 비밀번호 인증을 제공하지 마십시오.”