SSH协议
可以为
远程登录
提供安全保障的协议
使用SSH,可以把所有传输的数据进行加密,
中间人
攻击方式就不可能实现,
能防止DNS欺骗
和IP欺骗
- SSH 通讯过程
1.建立安全连接
2.客户端认证
3.数据传输
- 版本
SSH协议一共2个版本
SSH-1
SSH-2
现在用的比较多的是
SSH-2
,
客户端和服务端版本要保持一致
才能通信
查看
SSH版本
(查看配置文件的Protocol字段)
客户端:/etc/ssh/ssh_config
服务端:/etc/ssh/sshd_config
SSL 协议
Secure Sockets Layer
的缩写,是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密
OpenSSL
SSL的开源实现
绝大部分HTTPS请求等价于:HTTP + OpenSSL
OpenSSH
图片 1.png是
SSH协议
的免费开源实现
OpenSSH的加密就是通过OpenSSL
完成的
可以通过OpenSSH的方式让Mac远程登录到服务器
OpenSSH远程登录手机
图片 1.pngssh root@服务器IP地址
- 默认密码
alpine
// 终端状态
The authenticity of host '172.20.10.3 (172.20.10.3)' can't be established.
RSA key fingerprint is SHA256:xyLGRdOOcTo0QWLFr0L42YKqRaodwUoYxEbFaBZ3kh0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.20.10.3' (RSA) to the list of known hosts.
root@172.20.10.3's password:
iPhone:~ root#
iPhone:~ root#
就是进入到我们的手机了
root 与 mobile
root: 最高权限账户,$HOME是
/var/root
mobile: 普通权限账户,只能操作一些普通文件,不能操作系统级别的文件
修改登录密码
登录后输入
passwd
即可修改
SSH与iPhone的通信过程
- 建立安全连接
1.服务器提供自己的身份证明
- 客户端认证
基于
密码
的客户端认证
使用账号和密码即可认证
基于
密钥
的客户端认证
免密码认证
最安全的一种认证方式
SSH-2默认会优先尝试
密钥认证
,
如果认证失败,才会尝试密码认证
- 数据传输
服务器身份信息
- 查看身份验证信息
cd /Users/用户名/.ssh
cat known_hosts
-
修改身份验证信息
方法1
如果确定要连接此服务器,删除掉之前服务器的公钥信息就行
ssh-keygen -R 服务器IP地址
方法2
或者直接打开known_hosts文件删除服务器的公钥信息就行
vim ~/.ssh/known_hosts
搭建密钥的客户端认证
- 客户端生成
公钥
和私钥
cd /Users/用户名/.ssh
ssh-keygen
- 把客户端的公钥内容追加到服务器的授权文件
ssh-copy-id root@服务器主机地址
成功
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@服务器主机地址'"
and check to make sure that only the key(s) you wanted were added.
远程拷贝文件权限
- 基于SSH登录进行安全的远程文件拷贝命令
scp ~/.ssh/id_rsa.pub root@服务器主机地址:~/.ssh
- 追加公钥内容到授权文件尾部
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
- 如果配置了免密码登录后,还是需要输入密码,需要在服务器端设置文件权限
chmod 755 ~
chmod 755 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
- 删除公钥
rm ~/id_rsa.pub
端口
端口就是设备对外提供服务的窗口,
每个端口都有个端口号(范围是0~65535,共2^16个)
- 查看端口
cat /etc/ssh/sshd_config
- 已经规定了用途
21端口提供FTP服务
22端口提供SSH服务
iPhone默认是使用22端口进行SSH通信,采用的是TCP协议
80端口提供HTTP服务
USB 进行SSH 登录
图片 2.png- usbmuxd路径
服务程序usbmuxd(它会开机自动启动),
可以将Mac的数据通过USB传输到iPhone
- usbmuxd路径
cd /System/Library/PrivateFrameworks/MobileDevice.framework/Resources
- usbmuxd工具
usbmuxd-1.0.8
usbmuxd-1.0.8 -> python-client
tcprelay.py
usbmux.py
- 端口映射
cd ~/路径/usbmuxd-1.0.8/python-client
python tcprelay.py -t 22:10010
成功打印
Forwarding local port 10010 to remote port 22
- 连接
ssh root@localhost -p 本机
- usb拷贝
scp -P 10010 ~/路径/1.txt root@localhost:~/test
终端中文乱码问题
默认情况下,iOS终端不支持中文输入和显示
解决方案:新建一个~/.inputrc文件,文件内容是
不将中文字符转化为转义序列
set convert-meta off
允许向终端输出中文
set output-meta on
允许向终端输入中文
set meta-flag on
set input-meta on
网友评论