使用OpenSSH连接越狱设备

声明:本篇文章已授权微信公众号 YYGeeker 独家发布。

OpenSSH简介

OpenSSH(OpenBSD Secure Shell)是 SSH 协议的免费开源实现。SSH协议簇可以用来进行远程控制, 或在计算机之间传送文件。

越狱设备安装 OpenSSH

Cydia中添加雷锋源,然后搜索OpenSSH,如图,安装即可

Cydia中的OpenSSH

Mac电脑连接越狱设备


通过WIFI连接(需要越狱设备与电脑在同一局域网)

查看手机的IP地址


设置>>无线局域网

设置>>无线局域网>>详情
$ssh [email protected]

密码默认为

alpine

通过USB连接(比WiFi更快更稳定)

  • 安装usbmuxd
brew install usbmuxd
  • 使用iproxy命令电脑的2222端口转发到手机的22端口
$iproxy 2222 22
  • 然后command + t另起终端,执行ssh命令
$ssh –p 2222 root@localhost

设置免密登录


$ssh-keygen
$ssh-copy-id -p 2222 root@localhost

原理
1、客户端生成RSA公钥和私钥
ssh-keygen调用后,~/.shh目录中会生成私钥id_rsa和公钥id_rsa.pub
2、客户端将自己的公钥存放到服务器
ssh-copy-id -p 2222 root@localhost调用后,客户端的公钥id_rsa.pub会拷贝到服务器的~/.ssh/authorized_keys里面
3、客户端请求连接服务器,服务器将一个随机字符串发送给客户端
4、客户端根据自己的私钥加密这个随机字符串之后再发送给服务器
5、服务器接受到加密后的字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码了。

填坑记


解决REMOTE HOST IDENTIFICATION HAS CHANGED!

场景如下

 $ssh -p 2222 root@localhost
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:uOKypDzp0fdgHbfhzKN9Ci3uiOG54Pmoi4CKOINarfM.
Please contact your system administrator.
Add correct host key in /Users/CHF/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/CHF/.ssh/known_hosts:2
RSA host key for [localhost]:2222 has changed and you have requested strict checking.
Host key verification failed.

这里有一个关键词man-in-the-middle attack,先来看看wiki的解释:

中间人攻击(英语:Man-in-the-middle attack,缩写:MITM)是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。

使用ssh连接一个新host的时候,会有下面的询问:

RSA key fingerprint is SHA256:uOKypDzp0fdgHbfhzKN9Ci3uiOG54Pmoi4CKOINarfM.
Are you sure you want to continue connecting (yes/no)? 

输入yes,ssh就会把这个host对应的公钥,保存在~/.ssh/known_hosts里面。
后面每一次的连接,都会校验host对应的公钥,与~/.ssh/known_hosts里面的是否匹配,以阻止中间人攻击。

连接越狱设备出现这种问题,是因为我们使用usb连接,host写死为localhost,不同手机的公钥当然不一样。

  • 解决办法
    ~/.ssh/known_hosts中删除localhost对应的记录
[localhost]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD5UwQeAoQX

解决无法免密登录的问题

使用 -v 打印debug信息

$ssh -v -p 2222 root@localhost

看到如下日志,Offering public key: RSA服务器没有返回,所以定位为越狱机问题

debug1: Offering public key: RSA SHA256:SUmzZ/w6OjWX1H3i1hqWiXlDgUQjUN7YmomMa7fNquk /Users/CHF/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password,keyboard-interactive

查看越狱机日志
/etc/syslog.conf这个是syslog服务的主要配置文件,根据定义的规则导向日志信息。

$cat /etc/syslog.conf
*.* /var/log/syslog
$cat /var/log/syslog | grep sshd

发现如下日志

sshd[10024]: Authentication refused: bad ownership or modes for directory /private/var/root

google搜索Authentication refused: bad ownership or modes for directory
得知改一下权限就可以解决

chmod 755 /private/var/root

其他


编辑config文件

$vi ~/.ssh/config

添加下面的代码

Host chenhuafengde5s
    HostName localhost
    User root
    Port 2222

保存后,我们就可以使用ssh chenhuafengde5s来连接了

删除SSH服务器对应的公钥

$ssh-keygen -R 服务器IP地址

修改ssh登录密码的命令

$passwd

然后输入2次新密码既可修改成功!

你可能感兴趣的:(使用OpenSSH连接越狱设备)