1.前言在mac下登陆远程服务器并没有windows那么方便的使用XShell,相比较而言,在Mac下更多的是依赖终端输入SSH命令登录远程服务器 。
使用SSH命令行的好处就是可以近距离接触底层,用的越多,用的越溜,对SSH的原理就越了解 。相反,使用现成的SSH工具(PuTTY、XShell),我们其实并不会有涉及使用ssh命令的机会,对大多数人而言,怕是只知道最基本的ssh root@ip 。
本文将带大家了解ssh的原理与使用技巧,帮助更多终端爱好者更方便更随心所欲的使用终端 。
2.SSH是什么SSH服务其实是一个守护进程(demon),系统后台会监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息 。SSH服务端由2部分组成:openssh(提供ssh服务)、openssl(提供加密的程序) 。
3.对称加密和非对称加密在学习SSH的工作机制之前,我们需要了解对称加密和非对称加密的原理 。
对称加密
所谓对称加密,是采用对称密码编码技术的加密措施,它的特点是文件加密和解密都是使用相同的密钥 。
这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高 。
非对称加密
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey) 。
公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密 。
因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法 。
4.SSH如何工作了解了对称加密和非对称加密是什么之后,再来了解SSH如何使用非对称加密技术,大致流程如下:
在服务器启动的时候会产生一个密钥(也就是768bit公钥),本地的ssh客户端发送连接请求到ssh服务器,服务器检查连接点客户端发送的数据和IP地址,确认合法后发送密钥(768bits公钥)给客户端,此时客户端将本地私钥(256bit)和服务器的公钥(768bit)结合成密钥对key(1024bit),发回给服务器端,服务端利用自己的私钥解密,读取出客户端的本地私钥,建立连接通过key-pair数据传输,在此之后,服务端与客户端就愉快的使用客户端私钥进行沟通 。
5.SSH命令详解SSH命令最简单的用法只需要指定用户名和主机名参数即可,主机名可以是 IP 地址或者域名 。
ssh root@192.168.0.1指定端口号
SSH 默认连接到目标主机的 22 端口上,我们可以使用 -p 选项指定端口号 。
ssh -p 22 root@192.168.0.1追加命令
使用 SSH 在远程主机执行一条命令并显示到本地,然后继续本地工作,只需要直接连接并在后面加上要执行的命令 。
ssh -p 22 root@192.168.0.1 ls -l图形界面
在远程主机运行一个图形界面的程序,只需使用SSH的-X选项,然后主机就会开启 X11转发功能 。
ssh -X 22 root@192.168.0.1绑定源地址
如果你的客户端有多于两个以上的 IP 地址,你就不可能分得清楚在使用哪一个 IP 连接到 SSH 服务器 。为了解决这种情况,我们可以使用 -b 选项来指定一个IP 地址 。这个 IP 将会被使用做建立连接的源地址 。
ssh -b 192.168.0.200 root@192.168.0.103对所有数据请求压缩
使用 -C 选项,所有通过 SSH 发送或接收的数据将会被压缩,并且仍然是加密的 。
ssh -C root@192.168.0.103打开调试模式
因为某些原因,我们想要追踪调试我们建立的 SSH 连接情况 。SSH 提供的 -v 选项参数正是为此而设的 。其可以看到在哪个环节出了问题 。
ssh -v root@192.168.0.1036.SSH免密登陆通过SSH命令登陆远程服务器需要手动的每次输入密码,解决这个问题其实非常简单,通过 ssh-keygen 生成本地公钥和私钥,将公钥Copy到远程服务器就可以 。
1.构建 SSH 密钥对
使用 ssh-keygen -t +算法名,现在大多数都使用 RSA 或者 DSA 算法 。
如果你在安装Git时已经做过此步骤,那么忽略这一步即可 。
ssh-keygen -t rsa2.拷贝本地公钥给远程服务器
ssh-copy-id root@192.168.25.110 你可以通过参数 -i 指定公钥文件
ssh-copy-id -i id_dsa.pub omd@192.168.25.1103.查看是否已经添加了对应主机的密钥
使用 -F 选项
ssh-keygen -F 192.168.0.14.删除主机密钥
推荐阅读
- 端起茶 学会放下空杯
- 学会这些你就是Android 开发高手了!
- 人人都可以学会的百度霸屏引流,4大板块带你玩转百度引流
- 夏季贪凉易留病根 健康度夏学会“热着过”
- 领导者管人的10条铁则,学会了,管人原来很简单
- 嘴唇干燥唇纹深,学会这招拥有水嫩嘟嘟唇
- 学会品茶 其实是学会种生活
- 单车课堂:长途骑行自我训练学会自控是关键
- 手机连按3次,打开隐藏望眼镜和放大镜,学会一生有用
- 直接拿来用!一文学会 Docker 镜像