![从一台计算机通过 ssh 连接到同一子网中的另一台计算机](https://linux22.com/image/872857/%E4%BB%8E%E4%B8%80%E5%8F%B0%E8%AE%A1%E7%AE%97%E6%9C%BA%E9%80%9A%E8%BF%87%20ssh%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E5%90%8C%E4%B8%80%E5%AD%90%E7%BD%91%E4%B8%AD%E7%9A%84%E5%8F%A6%E4%B8%80%E5%8F%B0%E8%AE%A1%E7%AE%97%E6%9C%BA.png)
我有两台计算机连接到同一个子网。
第一个(A)运行 14.04,第二个(B)运行 12.04
我可以从第一个 ssh 到第二个,但不能从第二个 ssh 到第一个。
真的不知道从哪里开始才能弄清楚为什么会有这种差异。
然而 nmap 给出了截然不同的结果:
计算机(A),也就是我不能进入:
PORT STATE SERVICE
631/tcp open ipp
我可以进入的计算机(B):
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
由于两者上唯一开放的端口是 631,我尝试从 B 到 A 进行 ssh 并指定端口 631,但这也不起作用。
有人可以告知如何进行吗?
答案1
安装openssh server
在PC A
。
sudo apt-get install openssh-server
您有更多详细信息这里
然后你就可以ssh
进入PC A
PC B
SSH
从事于port 22
。
编辑1
ssh-server
如果你已经在 PC A 上安装,你可以使用命令检查netstat -at
服务器是否期望连接port 22
这是我的电脑的输出
xxx@xxx:~$ netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:microsoft-ds *:* LISTEN
tcp 0 0 *:netbios-ssn *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 *:ipp *:* LISTEN
tcp 0 0 *:telnet *:* LISTEN
tcp 0 320 xxxx:ssh xxx.xxx.xx.xxx:43423 ESTABLISHED
tcp6 0 0 [::]:microsoft-ds [::]:* LISTEN
tcp6 0 0 [::]:netbios-ssn [::]:* LISTEN
tcp6 0 0 [::]:http [::]:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 [::]:ipp [::]:* LISTEN
tcp6 1 0 ip6-localhost:38900 ip6-localhost:ipp CLOSE_WAIT
重要的是:
tcp 0 0 *:ssh *:* LISTEN
如果您设置ufw
或firewall
禁用它然后尝试连接。
还要重启ssh
服务
sudo service ssh restart
您将看到服务是否启动。
答案2
非常感谢您的回复。我终于解决了这个问题,这要感谢非常有用的帖子
问题是,在我下载的 sshd_server 版本中
apt-get install sshd_server
安装的 sshd_config 文件底部有三行,这被证明是问题的根源
Host *
ForwardAgent yes
ForwardX11 yes
当我删除这些行时,我的远程登录问题就解决了。为了诊断问题,我按照上面线程中的建议,建议使用以下命令关闭 sshd:
service sshd stop
然后以调试模式运行
/usr/sbin/sshd -p 22 -D -d -e
在调试模式下,sshd 标记了默认 sshd_config 文件中的错误选项。
删除这些行并重新启动后,端口 22 就打开了。