SSH连接报错sh:6000:command not found 求助排查
问题排查与解决
嘿,我一眼就揪出问题所在了——你在使用ssh命令时用错了端口参数!
先看你遇到的错误sh: 6000: command not found,再结合verbose日志里的这一行:
debug1: Sending command: 6000
这说明ssh客户端把6000当成了登录后要执行的命令,而不是你想指定的SSH服务端口。问题出在参数的大小写差异上:
你执行的命令是:
ssh -v admin@myserver -P 6000
在OpenSSH的ssh客户端中,大写的-P是用来指定远程端口转发的监听端口,而非目标SSH服务的端口。要指定SSH服务的连接端口,必须用小写的-p参数。
修复后的正确命令
把参数改成小写的-p即可:
ssh -v admin@myserver -p 6000
为什么Mac端的SSH Shell软件能正常连接?
图形化的SSH工具(比如你用的SSH Shell)是让你直接在界面的端口输入框中填写数字,不需要手动输入命令参数,自然不会出现这种大小写混淆的问题。而命令行下的ssh对参数大小写非常敏感,这就是两边表现不同的核心原因。
另外检查了你的sshd_config,里面虽然默认注释了#Port 22,但从Mac能正常连接来看,你肯定已经修改过端口为6000并重启了sshd服务,所以服务器端的配置是没问题的,完全是客户端命令的小失误。
内容的提问来源于stack exchange,提问作者user4358494
相关产品推荐
相关产品推荐

