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)
2回目の試行前のステートメントは、前のコマンドがecho
エラー1
状態を示す終了コードを返したことを示しています。
答え3
SSHDをロードしましたか?
launchctl load -w /System/Library/LaunchDaemons/ssh.plist