查看ssh端⼝号_SSH的使⽤详解
今天⼩编为⼤家分享⼀篇关于SSH 的介绍和使⽤⽅法的⽂章。本⽂从SSH是什么出发,讲述了SSH的基本⽤法,之后在远程登录、端⼝转发等多种场景下进⾏独⽴的讲述,希望能对⼤家有所帮助。
1. 什么是SSH?
SSH是⼀种⽹络协议,⽤于计算机之间的加密登录。最早的时候,互联⽹通信都是明⽂通信,⼀旦被截获,内容就暴露⽆疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联⽹安全的⼀个基本解决⽅案,迅速在全世界获得推⼴,⽬前已经成为Linux系统的标准配置。
curl是什么命令2. SSH登录原理
3. SSH基本⽤法
语法:
ssh -p 22 user@host
参数:
-p:指定端⼝号。
user:登录的⽤户名。
host:登录的主机。
默认的端⼝号为22,当端⼝号为22的时候,可以省略,直接使⽤如下⽅式:
ssh user@host
此外,如果本地正在使⽤的⽤户名与远程登录的⽤户名⼀致,登录⽤户名也是可以省略的,即如下:
ssh host
4. SSH远程登录实例
现在我有两台linux虚拟机,上⾯安装都是centOS6.5,ip分别为192.168.13.135和192.168.13.138,如下图:
现在,我需要操作的是通过SSH在192.168.13.138上⾯,登录到192.168.13.135上⾯。
⾸先,我们可以使⽤如下命令,查看两台机器是否启⽤了ssh。netstat -ntlp |grep ssh
使⽤如下命令进⾏连接。
ssh -p 22 root@192.168.13.135若在本机上是⾸次登录该远程主机,则会出现如下界⾯。
⼤致意思就是,⽆法确认host主机的真实性,只知道它的公钥指纹,问你还想继续连接吗?输⼊yes即可。
然后输⼊密码,即可连接ok了。
要想退出,直接输⼊exit即可。
5. SSH端⼝转发
SSH 不仅仅能够⾃动加密和解密 SSH 客户端与服务端之间的⽹络数据,同时,SSH 还能够提供了⼀个⾮常有⽤的功能,那就是端⼝转发,即将TCP 端⼝的⽹络数据,转发到指定的主机某个端⼝上,在转发的同时会对数据进⾏相应的加密及解密。如果⼯作环境中的防⽕墙限制了⼀些⽹络端⼝的使⽤,但是允许 SSH 的连接,那么也是能够通过使⽤SSH转发后的端⼝进⾏通信。转发,主要分为本地转发与远程转发两种类型。
1. 转发的参数
-C:压缩数据
-f :后台认证⽤户/密码,通常和-N连⽤,不⽤登录到远程主机。
-N :不执⾏脚本或命令,通常与-f连⽤。
-g :在-L/-R/-D参数中,允许远程主机连接到建⽴的转发的端⼝,如果不加这个参数,只允许本地主
机建⽴连接。
-L : 本地端⼝:⽬标IP:⽬标端⼝
-D : 动态端⼝转发
-R : 远程端⼝转发
-T :不分配 TTY 只做代理⽤
-q :安静模式,不输出错误/警告信息
2. 本地转发
有本地⽹络服务器的某个端⼝,转发到远程服务器某个端⼝。说⽩了就是,将发送到本地端⼝的请求,转发到⽬标端⼝。格式如下:
ssh -L 本地⽹卡地址:本地端⼝:⽬标地址:⽬标端⼝ ⽤户@⽬标地址。
现在我们利⽤本地转发来解决⼀个问题,⽐如我们有两台机器,如下:
centos A(192.168.13.139)
centos B(192.168.13.142)
现在,centos B(192.168.13.142)机器上⾯安装了mysql,并设置了运⾏任何主机连接,如下:
此时,在centos A(192.168.13.139)上⾯是可以连上centos B(192.168.13.142)的mysql,如下:
那么,现在我开始centos B(192.168.13.142)限制不允许外部ip连接,仅仅让127.0.0.1连接,如下:
此时,centos A(192.168.13.139)上⾯怎么连接上centos B(192.168.13.142)的mysql呢?
此时,我们还是使⽤上⾯的mysql连接⽅式,肯定会报错,如下:
当然在centos B(192.168.13.142)mysql还是可访问的。
这个时候,我们就可以使⽤本地端⼝转发了,将本地的某个端⼝,映射到centos B(192.168.13.142)机器上⾯的,如下:ssh -L 127.0.0.1:3306:127.0.0.1:3306 root@192.168.13.142
因为本地⽹卡地址是可以省略的,上⾯的转发,可以简写为:
ssh -L 3306:127.0.0.1:3306 root@192.168.13.142
当然,ssh连接的时候,若两台机器的⽤户名相同,也是可以省略的,即命令可以简写为:
ssh -L 3306:127.0.0.1:3306 192.168.13.14
上⾯的代码就是将本地的3306端⼝,转发到192.168.13.142的3306端⼝。因为centos B(192.168.13.142)上⾯的mysql使⽤的3606端⼝。当然,我们⾸先得看看本地的3306端⼝是否被占⽤,如被占⽤,可以使⽤其他的端⼝。
数据流向如图:
⾸先,centos A(192.168.13.139)上的应⽤将数据发送到本地的127.0.0.1上⾯的3306端⼝。
然后,centos A(192.168.13.139)将3306端⼝的数据,通过SSH转发到centos B(192.168.13.142)的3306端⼝。
接着,centos B(192.168.13.142)将处理后的数据,原路返回给centos A(192.168.13.139)。
如果是⾸次通过ssh连接cetosB该机器,则会提⽰确认公钥,并让你选择是否确定连接。
此时,我们在centos A上⾯连接centos B上⾯的mysql,就可以这么写了。
bin/mysql -h127.0.0.1 -uroot -p
如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论