web-dev-qa-db-ja.com

Macでsshdを起動する

MacでローカルホストにSSH接続できません。マシンでsshdが実行されていないことがわかりました(ポート22でプロセスが実行されていません)。

lsof -i:22

Remote LoginSystem 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
pkgajulapalli

私はこれに対する解決策を見つけました

問題をデバッグするために、別のポートを手動でリッスンして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
pkgajulapalli

投稿しているログは、セキュアシェルデーモンが実行されていることを示していますis実行中:

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)

2回目の試行の前のechoステートメントは、前のコマンドが1の終了コードを返したことを示しており、エラー状態を示しています。

2
DopeGhoti

Sshdをロードしましたか?

launchctl load -w /System/Library/LaunchDaemons/ssh.plist
1
d g