我正在尝试将我的一台 Linux 计算机设置为 ssh 服务器,但是无法连接到它。
我已经在两台计算机(客户端和服务器)上安装了 openssh-server 和 openssh-client。
如果我运行sudo service ssh start
,我会得到start: Job is already running: ssh
,因此 ssh 确实正在运行。此外,ps aux | grep -i ssh
返回
1000 2270 0.0 0.0 4080 24 ? Ss 06:04 0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session mate-session
1000 2286 0.0 0.3 59104 7832 ? Sl 06:04 0:00 /usr/bin/mate-keyring-daemon --start --components=ssh
1000 6333 0.0 0.0 6684 1132 ? Ss 07:29 0:00 /usr/sbin/sshd
root 12622 0.0 0.1 6684 2432 ? Ss 08:09 0:00 /usr/sbin/sshd -D
1000 13978 0.0 0.0 4392 844 pts/0 S+ 08:33 0:00 grep --color=auto -i ssh
如果我ssh localhost
在服务器上运行,我可以连接。但如果我在局域网上的其他计算机上尝试,则无法连接。
我已经设置并运行了 Samba 共享,因此我认为这不是防火墙问题。
任何帮助,将不胜感激。
答案1
检查 ssh 是否正在监听端口 0.0.0.0:22/TCP
$ sudo netstat -putan | grep LIST | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 4330/sshd
tcp6 0 0 :::22 :::* LISTEN 4330/sshd
如果正在监听,请检查您是否有防火墙:
sudo iptables -L INPUT -n -v
如果出现很多行,你可以启用 UFW 检查它:sudo ufw status
如果已启用,请尝试添加一条规则以允许 ssh:
sudo ufw allow ssh
之后尝试再次连接 ssh。如果不行,你可以使用下一行完全禁用防火墙,然后重试:sudo iptables -F
(请注意,上面的行不是永久的,因此,如果您重新启动计算机,防火墙可能会重新启动,禁用或正确配置防火墙)