iOS 10.X無法使用openssh的解決方案
原因檢查:
安裝mterminal,用于在ios上執(zhí)行命令
1.執(zhí)行ps aux | grep sshd發(fā)現sshd沒有啟動
2.mterminal執(zhí)行/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執(zhí)行:
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執(zhí)行 /usr/sbin/sshd -p 2222
xshell執(zhí)行 ssh x.x.x.x:2222
10.X上發(fā)現不同于之前系統(tǒng)的問題:
- 嘗試用22端口啟動sshd會發(fā)現失敗,原因是端口被占用,具體哪個進程占得無法確定,因為沒有可用的lsof
- ssh連接上后有時會莫名其妙斷開,猜測是系統(tǒng)定期重置無訪問的端口。為了解決這個問題,需要在xterm中進行相應設置(對應配置ssh_config)
- 會話屬性=>連接
勾選:連接異常關閉時自動重新連接
間隔1秒 限制48分鐘 - 會話屬性=>連接=>保持活動狀態(tài)
勾選:鏈接會話期間發(fā)送保持活動狀態(tài)消息
間隔16秒
勾選:網絡空閑時發(fā)送字符串
間隔16秒 字符串
勾選:網絡為空閑狀態(tài)時發(fā)送TCP保持活動數據包
網上對于這個問題,采取了安裝另一個工具:dropbear
具體方式:http://www.itdecent.cn/p/91e0c22a6ea7
安裝dropbear后執(zhí)行dropbear -R -p 2345,使其后臺運行。這里同樣,由于22端口被其他進程占用,因此需要換端口
2022年更新于此:
iOS10在h3lix越獄后安裝openssh無法遠程連接,根源在于配置文件錯誤
詳見https://github.com/lich4/fixiosopenssh