質問: ssh:ホストlocalhostポート22に接続:接続が拒否されました debian kaliでsshに接続しようとすると、次のエラーが発生しました。ssh:ホストlocalhostポート22に接続:接続が拒否されましたバックグラウンド :私はsshをdebianで接続しようとしていましたが、kali 2.0 sanaを使用しています私が試した/したこと:`apt-get install openssh-server` インストールされたopenssh-serverとその最新クエリされたサービスssh status● ssh.service - openbsd secure shell server loaded: loaded (/lib/systemd/system/ssh.service; enabled) active: active (running) since wed 2015-09-23 17:20:36 ist; 36min ago main pid: 1594 (sshd) cgroup: /system.slice/ssh.service └─1594 /usr/sbin/sshd -d dpkg-reconfigure openssh-serverを再構成すると、成功にもつながります今私は接続しようとしましたssh root@localhostこれはroot @ localhostパスワードを必要とするので、私がしたことはvi /etc/ssh/sshd_configおよびrootログインを拒否するコマンドを追加しました:次のように私のsshd_config:what ports, ips and protocols we listen for port 22 #use these options to restrict which interfaces/protocols sshd will bind to #listenaddress :: #listenaddress 0.0.0.0 protocol 2 # hostkeys for protocol version 2 hostkey /etc/ssh/ssh_host_rsa_key hostkey /etc/ssh/ssh_host_dsa_key hostkey /etc/ssh/ssh_host_ecdsa_key hostkey /etc/ssh/ssh_host_ed25519_key #privilege separation is turned on for security useprivilegeseparation yes 再び「ssh root @ localhost」経由でsshに接続しようとしましたが、connect to host localhost port 22: connection refused私のiptablesはそれを妨げている可能性がありますが、次のように構成されています:vim /root/firewall.rules root@vignesh:~# iptables-save > /root/firewall.rules root@vignesh:~# iptables -x root@vignesh:~# iptables -t nat -f root@vignesh:~# iptables -t nat -x root@vignesh:~# iptables -t mangle -f root@vignesh:~# iptables -t mangle -x root@vignesh:~# iptables -p input accept root@vignesh:~# iptables -p forward accept root@vignesh:~# iptables -p output accept root@vignesh:~# iptables-save > /root/firewall.rules そして、私はiptables-save# generated by iptables-save v1.4.21 on wed sep 23 18:50:34 2015 *mangle :prerouting accept [41217:4171959] :input accept [27727:3255690] :forward accept [0:0] :output accept [1834:219528] :postrouting accept [1835:219654] commit # completed on wed sep 23 18:50:34 2015 # generated by iptables-save v1.4.21 on wed sep 23 18:50:34 2015 *nat :prerouting accept [15456:1179155] :input accept [1858:255303] :output accept [223:14078] :postrouting accept [223:14078] commit # completed on wed sep 23 18:50:34 2015 # generated by iptables-save v1.4.21 on wed sep 23 18:50:34 2015 *filter :input accept [26756:3173280] :forward accept [0:0] :output accept [1775:215770] commit チェックされたコメントの通りroot@vignesh:~# netstat -an | grep 22 tcp 0 0 10.100.8.40:54036 216.58.220.46:80 established tcp 0 0 10.100.8.40:41573 216.58.220.14:80 established unix 3 [ ] stream connected 17722 @/tmp/dbus-junz9gwson unix 3 [ ] stream connected 13422 unix 3 [ ] stream connected 17224 unix 3 [ ] stream connected 17422 unix 2 [ ] dgram 9222 unix 3 [ ] stream connected 17221 /var/run/networkmanager/private unix 3 [ ] stream connected 17225 /var/run/networkmanager/private unix 3 [ ] stream connected 17229 unix 3 [ ] stream connected 17220 もう一度試してみましたssh root@localhostですが、再びエラーが発生しました。パーツが欠けている場所を教えてください。どうすれば接続できますか?
回答: netstatの出力は、ポート22をリッスンしているプロセスがないことを示しています。これは、sshを試行するときにconnection refusedを取得する理由を説明しています。statusデーモンに関するsshd情報は実行中を示していますが、リスニングポートが関連付けられていません(または関連付けられていないようです)。さらに、コメントで教えられたように、sshd_configファイルは正しくないようです。 rootログインを無効にしたいので、sshデーモンの構成を提案します。/etc/ssh/sshd_configファイルを編集して、次のコンテンツを入れます。port 22 protocol 2 hostkey /etc/ssh/ssh_host_rsa_key hostkey /etc/ssh/ssh_host_dsa_key hostkey /etc/ssh/ssh_host_ecdsa_key hostkey /etc/ssh/ssh_host_ed25519_key useprivilegeseparation yes keyregenerationinterval 3600 serverkeybits 1024 syslogfacility auth loglevel info logingracetime 120 permitrootlogin no strictmodes yes rsaauthentication yes pubkeyauthentication yes ignorerhosts yes rhostsrsaauthentication no hostbasedauthentication no permitemptypasswords no challengeresponseauthentication no x11forwarding yes x11displayoffset 10 printmotd no printlastlog yes tcpkeepalive yes acceptenv lang lc_* subsystem sftp /usr/lib/openssh/sftp-server usepam yes clientaliveinterval 30 clientalivecountmax 99999 セキュリティが心配な場合は、sshを必要なユーザーだけに制限できます。たとえば、ユーザーvigneshだけがsshを実行できるように制限する場合は、次のような別のディレクティブを追加できます。allowusers vignesh その後、単にsshdサービスを再起動します。完了したら、netstat -atpn | grep 22を実行すると、ポート22がすべてのユーザーをリッスンしていることがわかります。