iOS OpenSSH 踩坑记

不久前给自己的小6越了狱,用的是g0blin这款工具,RC2版本中sticktron把RC1中自带的dropbear给移除了,需要自己安装OpenSSH使用。

无法连接

OpenSSH偶尔无法连接,要么是提示Connection Refuse要么没提示。

其实用这样两句命令就可以解决了的:
killall sshd
/usr/sbin/sshd -D

其中第一句将杀死所有OpenSSH的Daemon进程,第二句将重启OpenSSH Daemon

注意:请使用root身份执行以上命令

无法使用密钥对验证登录

首先你得知道什么叫“使用密钥对验证登录”,简而言之就是一种比输入密码安全得多的登录方式,基于预共享的密钥对。

将公钥拷贝到默认位置
mv authorized_keys $HOME/.ssh/authorized_keys
之后,重启sshd,重新ssh登录
ssh mobile@192.168.1.1 -i id_rsa.key
发现依然提示需要输入密码。

于是重启sshd到调试模式
killall sshd
/usr/sbin/sshd -d
然后再次尝试使用密钥登录

发现日志有如下输出:

debug1: trying public key file /var/mobile/.ssh/authorized_keys
Authentication refused: bad ownership or modes for directory /private/var/mobile

看了看,大致意思是说我家目录的权限设置有问题,可能会导致不安全。
根据这篇文章

SSH doesn’t like it if your home or ~/.ssh directories have group write permissions. Your home directory should be writable only by you, ~/.ssh should be 700, and authorized_keys should be 600

然而家目录的权限可不能乱改,万一系统挂了就gg了,继续往下看……

You can also get around this by adding StrictModes off to your ssh_config file, but I’d advise against it - fixing permissions is the way to go.

有了!
我们可以关闭ssh的严格模式,让OpenSSH不再对公钥文件的权限进行检查。
nano /etc/ssh/sshd_config
^W寻找关键字strict

#StrictModes yes

改为

StrictModes no

然后再次重启sshd
尝试用密钥连接
成功!

BTW,建议配置成功之后把允许使用密码登录关了以提高安全性

《iOS OpenSSH 踩坑记》上有1条评论

发表评论