解决 ssh localhost 命令,出现错误提示connect to host localhost port 22:Connection refused 的问题

ssh ubuntu@192.168.10.129
ssh: connect to host 192.168.10.129 port 22: Connection refused

客户端是windows

服务端是 Ubuntu

windows下测试ssh时使用ssh localhost 命令,出现错误提示connect to host localhost port 22:Connection refused 

造成这个错误的原因可能是ubuntu openssh-server未安装或者未启动。ubuntu 默认安装openssh-client,但是没有安装server 

运行 ps -e | grep ssh,查看是否有sshd进程 

ubuntu@ubuntu:/etc/redis$ ps -e | grep ssh
ubuntu@ubuntu:/etc/redis$  /etc/init.d/ssh -start
bash: /etc/init.d/ssh: 没有那个文件或目录

如果没有,说明server没启动,通过 /etc/init.d/ssh -start 启动server进程,如果提示ssh不存在 那么就是没安装server

通过 sudo apt-get install openssh-server命令安装即可

ubuntu@ubuntu:/etc/redis$ sudo apt-get install openssh-server
[sudo] ubuntu 的密码: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会同时安装下列软件:
  ncurses-term openssh-sftp-server ssh-import-id
建议安装:
  ssh-askpass rssh molly-guard monkeysphere
下列【新】软件包将被安装:
  ncurses-term openssh-server openssh-sftp-server ssh-import-id
升级了 0 个软件包,新安装了 4 个软件包,要卸载 0 个软件包,有 41 个软件包未被升级。
需要下载 633 kB 的归档。
解压缩后会消耗 5,136 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 ncurses-term all 6.0+20160213-1ubuntu1 [249 kB]
获取:2 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-sftp-server amd64 1:7.2p2-4ubuntu2.10 [38.8 kB]
获取:3 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-server amd64 1:7.2p2-4ubuntu2.10 [335 kB]
获取:4 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 ssh-import-id all 5.5-0ubuntu1 [10.2 kB]            
已下载 633 kB,耗时 11秒 (55.9 kB/s)                                                                             
正在预设定软件包 ...
正在选中未选择的软件包 ncurses-term。
(正在读取数据库 ... 系统当前共安装有 215903 个文件和目录。)
正准备解包 .../ncurses-term_6.0+20160213-1ubuntu1_all.deb  ...
正在解包 ncurses-term (6.0+20160213-1ubuntu1) ...
正在选中未选择的软件包 openssh-sftp-server。
正准备解包 .../openssh-sftp-server_1%3a7.2p2-4ubuntu2.10_amd64.deb  ...
正在解包 openssh-sftp-server (1:7.2p2-4ubuntu2.10) ...
正在选中未选择的软件包 openssh-server。
正准备解包 .../openssh-server_1%3a7.2p2-4ubuntu2.10_amd64.deb  ...
正在解包 openssh-server (1:7.2p2-4ubuntu2.10) ...
正在选中未选择的软件包 ssh-import-id。
正准备解包 .../ssh-import-id_5.5-0ubuntu1_all.deb  ...
正在解包 ssh-import-id (5.5-0ubuntu1) ...
正在处理用于 man-db (2.7.5-1) 的触发器 ...
正在处理用于 ureadahead (0.100.0-19.1) 的触发器 ...
正在处理用于 systemd (229-4ubuntu21.28) 的触发器 ...
正在处理用于 ufw (0.35-0ubuntu2) 的触发器 ...
正在设置 ncurses-term (6.0+20160213-1ubuntu1) ...
正在设置 openssh-sftp-server (1:7.2p2-4ubuntu2.10) ...
正在设置 openssh-server (1:7.2p2-4ubuntu2.10) ...
Creating SSH2 RSA key; this may take some time ...
2048 SHA256:SiLp0FC3zW5rPW1nLp6jHO1odSEyS9BpPeMvMJIc0Fo root@ubuntu (RSA)
Creating SSH2 DSA key; this may take some time ...
1024 SHA256:YMhJ30NmDZwe3zjb6Fawt4qfneDesyQGV39cP7MFT2o root@ubuntu (DSA)
Creating SSH2 ECDSA key; this may take some time ...
256 SHA256:Yj9rT42e37OgvXahQBW3vgorPtKurhS74X8NzoRPbSc root@ubuntu (ECDSA)
Creating SSH2 ED25519 key; this may take some time ...
256 SHA256:HISJ8XQXl2Wl0Kq6ilK7K25Cq49VO0GJGg1MrYtALEQ root@ubuntu (ED25519)
正在设置 ssh-import-id (5.5-0ubuntu1) ...
正在处理用于 ureadahead (0.100.0-19.1) 的触发器 ...
正在处理用于 systemd (229-4ubuntu21.28) 的触发器 ...
正在处理用于 ufw (0.35-0ubuntu2) 的触发器 ...
ubuntu@ubuntu:/etc/redis$ ps -e | grep ssh
 70549 ?        00:00:00 sshd

通过ps -e | grep ssh 查看 sshd 服务已经启动了

测试windows客户端

ssh ubuntu@192.168.10.129
The authenticity of host '192.168.10.129 (192.168.10.129)' can't be established.
ECDSA key fingerprint is SHA256:Yj9rT42e37OgvXahQBW3vgorPtKurhS74X8NzoRPbSc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.129' (ECDSA) to the list of known hosts.
ubuntu@192.168.10.129's password:
Welcome to Ubuntu 16.04.7 LTS (GNU/Linux 4.15.0-112-generic x86_64)

 * Documentation:  https://help.ubuntu.comWelcome to Ubuntu 16.04.7 LTS (GNU/Linux 4.15.0-112-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


45 个可升级软件包。
2 个安全更新。

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

ubuntu@ubuntu:~$