iOS 10.X无法使用openssh的解决方案
iOS 10.X无法使用openssh的解决方案
原因检查:
安装mterminal,用于在ios上执行命令
1.执行ps aux | grep sshd
发现sshd没有启动
2.mterminal执行/usr/sbin/sshd -d
报错如下(-d为调试模式):
Could not load host key: /etc/ssh/ssh host key
Could not load host key: /etc/ssh/ssh host rsa key
Could not load host key: /etc/ssh/ssh host dsa key
Disabling protocol version 2. Could not load host key
sshd: not hostkeys available -- exiting
这说明安装openssh时没有生成必须的证书,所以sshd无法启动,所以下一步来生成证书
3.生成公钥信息,mterminal执行:
ssh-keygen -f /etc/ssh/ssh_host_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
4.启动sshd并连接
mterminal执行 /usr/sbin/sshd -p 2222
xshell执行 ssh x.x.x.x:2222
10.X上发现不同于之前系统的问题:
- 尝试用22端口启动sshd会发现失败,原因是端口被占用,具体哪个进程占得无法确定,因为没有可用的lsof
- ssh连接上后有时会莫名其妙断开,猜测是系统定期重置无访问的端口。为了解决这个问题,需要在xterm中进行相应设置(对应配置ssh_config)
- 会话属性=>连接
勾选:连接异常关闭时自动重新连接
间隔1秒 限制48分钟 - 会话属性=>连接=>保持活动状态
勾选:链接会话期间发送保持活动状态消息
间隔16秒
勾选:网络空闲时发送字符串
间隔16秒 字符串
勾选:网络为空闲状态时发送TCP保持活动数据包
网上对于这个问题,采取了安装另一个工具:dropbear
具体方式:https://www.jianshu.com/p/91e0c22a6ea7
安装dropbear后执行dropbear -R -p 2345,使其后台运行。这里同样,由于22端口被其他进程占用,因此需要换端口