SSH 只能用于远程 Linux 主机?那说明你见识太小了!
点击「阅读原文」查看良许原创精品视频。
来自:DevOps技术栈
点击「阅读原文」查看良许原创精品视频。
来自:DevOps技术栈
点击「阅读原文」查看良许原创精品视频。
来自:DevOps技术栈
什么是SSH?
SSH是一种网络协议,用于计算机之间的加密登录。最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
SSH登录原理
SSH基本用法
语法:
ssh -p 22 user@host
-p:指定端口号。 user:登录的用户名。 host:登录的主机。
ssh user@host
ssh host
现在我有两台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
SSH端口转发
-C:压缩数据
-f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。
-N :不执行脚本或命令,通常与-f连用。
-g :在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。
-L : 本地端口:目标IP:目标端口
-D : 动态端口转发
-R : 远程端口转发
-T :不分配 TTY 只做代理用
-q :安静模式,不输出 错误/警告 信息
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 -L 3306:127.0.0.1:3306 192.168.13.14
bin/mysql -h127.0.0.1 -uroot -p
ssh -R 127.0.0.1:80:10.18.78.135:80 root@192.168.13.142
SSH的远程操作
ssh user@host 'command'
ssh dequan@192.168.13.149 'uname -a'
tar -cz test | ssh dequan@192.168.13.149 'tar -xz'
ssh dequan@192.168.13.149 'netstat -tln |grep 1080'
SSH的本地转发
ssh -L [本地地址:]本地端口:远程地址:远程端口 远程用户@远程地址
ssh -f -N -L 127.0.01:80:192.168.13.148:80 dequan@192.168.13.148
SSH的远程转发
ssh -R [远程地址:]远程端口:本地地址:本地端口 远程用户@远程地址
sudo ssh -f -N -R 8081:127.0.0.1:80 dequan@192.168.13.149
vim /etc/ssh/sshd_config
#如果有
GatewayPorts no
#改为
GatewayPorts yes
#没有,添加即可
#然后重启sshd
sudo service sshd restart
ssh -f -g -N -R 8081:127.0.0.1:80 dequan@192.168.13.149
curl -x 192.168.13.149:8081 127.0.0.1
SSH的动态转发
ssh -D [本地地址:]本地端口号 远程用户@远程地址
SSH存在的问题
总结
本公众号全部博文已整理成一个目录,请在公众号里回复「m」获取! 推荐阅读:
5T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,单片机,树莓派,等等。在公众号内回复「1024」,即可免费获取!!
评论