刚装好一台 Ubuntu 桌面机,想从笔记本上用 Xshell 连过去敲命令,结果直接 connection refused。别怀疑网络,多数情况是这台机器压根没装 ssh 服务端——桌面版默认不带,得自己装。

安装与启动

在目标机器上开终端,先执行 sudo apt update,再执行 sudo apt install openssh-server,装的是 OpenSSH 的服务端。装完服务一般自动启动,验证一下:systemctl status ssh,看到 active (running) 就成了。顺手设成开机自启:sudo systemctl enable --now ssh。Ubuntu Server 版安装时一般有勾选 OpenSSH 的步骤,装过的话这步可以跳过。

从另一台机器连上来

先在目标机上 ip addr 看本机 IP,然后在客户端连:Windows 10 以后的系统 cmd 里自带 ssh 命令,直接 ssh 用户名@192.168.1.20,首次连接会提示确认指纹,输 yes,再输密码就进去了。端口默认 22,被改过就在命令后加 -p 端口。

防火墙和配置文件

开了 ufw 防火墙的机器记得放行:sudo ufw allow ssh,或者直接放行 22 端口,不然服务活着也连不上。服务端配置都在 /etc/ssh/sshd_config 里,常用项:改 Port 换端口,PermitRootLogin 控制 root 能不能直接登。改完执行 sudo systemctl restart ssh 生效。

两个实用建议

密码登录用一段时间后,建议换密钥:客户端 ssh-keygen 生成密钥对,公钥追加到服务器的 authorized_keys 文件里,之后免密码也更安全。改 sshd_config 前先备份一份,尤其是远程改配置,把 PasswordAuthentication 关掉之前,一定先确认密钥登录能通,否则会把自己锁在门外。

串起来就三步:装 openssh-server、放行防火墙、ip addr 查地址,连不上时先 systemctl status ssh 看服务状态,再看防火墙,九成问题出在这两处。