Mac에서 sshd를 시작하세요

Mac에서 sshd를 시작하세요

Mac에서 SSH를 통해 localhost에 액세스할 수 없습니다. sshd가 컴퓨터에서 실행되고 있지 않은 것을 발견했습니다(포트 22에서 실행되는 프로세스가 없음).

lsof -i:22

Remote Login활성화를 요청하는 게시물을 찾았습니다 System Preferences -> Sharing. 활성화되어 있지만 로컬 호스트로 SSH를 연결할 수 없습니다. 내가받는 오류는 다음과 같습니다

$ssh -v localhost
OpenSSH_7.6p1, LibreSSL 2.6.2
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug1: Connecting to localhost port 22.
debug1: Connection established.
debug1: identity file /Users/gkumar6/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory
debug1: identity file /Users/gkumar6/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/gkumar6/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/gkumar6/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/gkumar6/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/gkumar6/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/gkumar6/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/gkumar6/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6
ssh_exchange_identification: read: Connection reset by peer

여기서 뭔가 빠졌나요?

답변1

이 문제에 대한 해결책을 찾았습니다

sshd문제를 디버깅하기 위해 다른 포트에서 수신 대기하면서 프로세스를 수동으로 실행 해 보았습니다 .

sudo /usr/sbin/sshd -d -p 2222

실제 문제를 보여줍니다.

debug1: sshd version OpenSSH_7.6, LibreSSL 2.6.2
debug1: private host key #0: ssh-rsa SHA256:oECJtUeeA3sNrAQj3phBiuWJoVl00dzLiXi20tlWF/o
debug1: private host key #1: ssh-dss SHA256:uVnKrOK+4V+y3QalyFdqDz+9eBN4oi2E3wb1MDBcgzc
debug1: private host key #2: ecdsa-sha2-nistp256 SHA256:CWapRrGUSJx2doJkDf2YR/aZy4BJ4j9K1/ZwX4eUZcg
debug1: private host key #3: ssh-ed25519 SHA256:sjzAks0Hud+Ah941pd8ZRNO6MWENdhO8wW4NMNDL2Ns
/var/empty must be owned by root and not group or world-writable.

이 디렉토리의 권한은 /var/empty다음과 같습니다.

drwxr-xr-x   7 gkumar6       sys            224B Aug 12 21:02 empty

그래서 나는 그것을 다음과 같이 바꿨다.sudo chown root:wheel /var/empty

drwxr-xr-x   7 root          wheel          224B Aug 12 21:02 empty

이것은 나에게 문제를 해결했습니다.

답변2

게시한 로그에는 보안 셸 데몬이 표시됩니다.달리기:

debug1: Connection established.

그렇지 않은 경우 해당 줄이 표시되지 않습니다. 대신 로 끝나는 더 간결한 로그가 표시됩니다 Connection refused.

lsof충분한 권한으로 명령을 실행하지 않았기 때문에 출력이 표시되지 않을 가능성이 높습니다.

$ lsof -i:22
$ echo $?
1
$ sudo lsof -i:22
sudo lsof -i:22
Password:
COMMAND PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
launchd   1 root   12u  IPv6 0x2feb0cecf91e551b      0t0  TCP *:ssh (LISTEN)
launchd   1 root   16u  IPv4 0x2feb0cecf91ec3a3      0t0  TCP *:ssh (LISTEN)
launchd   1 root   22u  IPv6 0x2feb0cecf91e551b      0t0  TCP *:ssh (LISTEN)
launchd   1 root   23u  IPv4 0x2feb0cecf91ec3a3      0t0  TCP *:ssh (LISTEN)

두 번째 시도 전의 명령문은 echo이전 명령이 1오류 상태를 나타내는 종료 코드를 반환했음을 보여줍니다.

답변3

SSHD를로드 했습니까?

launchctl load -w /System/Library/LaunchDaemons/ssh.plist

관련 정보