SSH 只能用于远程 Linux 主机?那说明你见识太少了!
来源:DevOps技术栈
什么是SSH?
SSH是一种网络协议,用于计算机之间的加密登录。最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
SSH登录原理
SSH基本用法
语法:
ssh -p 22 user@host
ssh user@host
ssh host
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
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存在的问题
总结
请备注:666,不然不通过~
最近好文
1、Spring Boot 实现扫码登录,这种方式太香了!!
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。 获取方式:关注公众号并回复 java 领取,更多内容陆续奉上。 明天见(。・ω・。)ノ♡
评论