具体主要是XShell、VSCode 远程 服务器(Ubuntu、CentOS)的时候,SSH远程连接的问题。
无法连接问题
Connecting to 192.168.1.103:22…
Could not connect to ‘192.168.1.103’ (port 22): Connection failed.
这里可能是ssh没有打开。
安装ssh服务
sudo apt-get install openssh-server
然后直接XShell连接试试。
连接断开问题
报错信息大致如下:
1 2 3 4 5 6 |
Socket error Event: 32 Error: 10053. Connection closing...Socket close. Connection closed by foreign host. Disconnected from remote host(AMDServer) at 13:45:53. |
当时认为是需要保持连接,需要配置客户端和服务器
服务端修改 /etc/ssh/sshd_config 文件,修改ClientAliveInterval 和 ClientAliveCountMax两个字段。
XShell客户端配置【连接】-【保持活动状态】。
后来配置了发现还是不行,然后接着考虑另一个问题。
就是IP冲突的问题,比如Ubuntu虚拟机的IP地址和家里其他设备的IP地址冲突了(的确遇到过)
然后把路由器的DHCP服务的IP表区间修改了,前10个IP用作固定IP。
最后想到的是,是不是我的双网络切换导致的?
我用的是 AMD真实主机 + VMWare虚拟机。
我的主机有两个网络,有线+Wifi同时连接的。
我尝试了一下,将有线网络禁掉的瞬间,果然出现了同样的问题,那问题就此复现了…
解决方案?没有…哈哈哈,保持自己网络稳定呗…
VSCode SSH Tunnel问题
channel 2: open failed: administratively prohibited: open failed
在服务器中,请确保/etc/ssh/sshd_config 文件中以下行不存在或未注释,否则请对其进行注释。
AllowTcpForwarding no
然后 service sshd restart 重启ssh服务
如果还是不行,需要尝试删掉 .vscode-server 文件夹,然后重连
VSCode SSH 配置免密登录,依旧需要使用密码
参考:https://blog.csdn.net/developerof/article/details/89851621
查看系统安全日志,定位问题
执行 sudo cat /var/log/secure
查看系统的安全日志,然后再安全日志中看到SSH登录过程中提示了如下错误:
1 2 3 |
Dec 1 21:52:42 localhost sshd[29276]: fatal: Read from socket failed: Connection reset by peer [preauth] Dec 1 21:52:46 localhost sshd[29280]: Authentication refused: bad ownership or modes for file /home/tkxiong/.ssh/authorized_keys Dec 1 21:52:50 localhost sshd[29284]: Authentication refused: bad ownership or modes for file /home/tkxiong/.ssh/authorized_keys |
SSH不希望home目录和~/.ssh目录对组有写权限,所以需要修改权限。
chmod 700 /home/username/.ssh
chmod 600 /home/username/.ssh/authorized_keys
修改完之后就OK了…