命令ssh 安全隧道/端口转发

有待整理

SSH协议

通过公钥加密技术实现服务器身份验证。

  • 安全的隧道
    SSH会自动加密和解密所有SSh客户端与服务端之间的网络数据。这一过程也称tunneling(隧道)
    因为SSH为其他TCP连接提供了一个安全的通道来进行传输:Telnet,SMTP,LDAP等TCP应用,避免了明文传输(用户名/密码等敏感信息)

  • SSH端口转发TCP端口
    端口转发可以“绕过“防火墙对端口的直接限制
    防火墙限制了某些网络端口,但是允许SSH的连接:
    加密SSH Client端至SSH Server端之间的通讯数据,建立TCP连接。

  • 远程登录
    通过scp或sftp实现备份和远程文件传输等的推荐安全协议。
    SSH保证两个网络或两个系统之间数据交互的机密性和完整性。

ssh软件

  • sshd - 服务端 默认监听22端口,提供服务
  • ssh - Linux Shell下自由软件OpenSSH套件中的客户端连接工具
  • Xshell - win下的ssh客户端

ssh [option]

-1:强制使用ssh协议版本1;
-2:强制使用ssh协议版本2;
-4:强制使用IPv4地址;
-6:强制使用IPv6地址;
-A:开启认证代理连接转发功能;
-a:关闭认证代理连接转发功能;
-b:使用本机指定地址作为对应连接的源[ip](http://man.linuxde.net/ip)地址;
-C:请求压缩所有数据;
-F:指定ssh指令的配置文件;
-f:后台执行ssh指令;
-g:允许远程主机连接主机的转发端口;
-i:指定身份文件;
-l:指定连接远程服务器登录用户名;
-N:不执行远程指令;
-o:指定配置选项;
-p:指定远程服务器上的端口;
-q:静默模式;
-X:开启X11转发功能;
-x:关闭X11转发功能;
-y:开启信任X11转发功能。

默认配置文件和SSH端口

/etc/ssh/sshd_config #OpenSSH服务器配置文件

/etc/ssh/ssh_config #OpenSSH客户端配置文件

~/.ssh/ #用户SSH配置目录

~/.ssh/authorized_keys #用户公钥 RSA或DSA

/etc/nologin #如果存在这个文件,sshd会拒绝除root用户外的其它用户登录

/etc/hosts.allow和/etc/hosts.deny #定义tcp-wrapper执行的访问控制列表

修改默认配置 - OpenSSH服务器配置文件

编辑配置文件:去掉最前面的#号,保存

vi /etc/ssh/sshd_config
#Port  22
修改端口号

#PermitRootLogin yes   #将yes修改成no
禁止root登录 - - - 通常用普通用户登录,需要管理远程主机时再切换到root用户。不直接用root超级权限登录,有安全隐患

#Protocol 2,1   #修改为Protocol 2 
仅允许SSH协议版本2  - - - SSH协议版本1有安全问题:中间人攻击(man-in-the-middle),注入(insertion)攻击

#Banner /some/path
设置登录时提示信息 - - - 将提示文本文件banner.xt文件的完整路径,替换掉/some/path

MaxAuthTries 3  #最大登录次数   密码错误超过3次拒绝登录
#重启服务
/etc/init.d/ssh restart

ssh登录

常用格式:
ssh [-l login_name] [-p port] [user@]hostname

ssh://用户名:密码@IP:端口


#指定用户登录
ssh root@192.168.0.11
ssh -l root 192.168.0.11

ssh 192.168.0.11#不指定用户时,默认为本机用户名

#指定端口
ssh name@remoteserver -p 2222
ssh remoteserver -l name –p 2222

ssh运行命令

ssh -l username remoteserver command

ssh host -l user $(<cmd.txt)     #复杂的远程shell命令
ssh host -l user “`cat cmd.txt`”  #更具移植性

比较远程和本地文件的差异

ssh user@host cat /path/to/remotefile | diff /path/to/localfile –

开启隧道 从某主机的80端口到本地主机2001端口的

ssh -N -L 2001:localhost:80 somemachine

本地主机执行命令后,在浏览器中输入http://localhost:2001即可访问服务器80端口上的网站

无密码SSH登录

ssh-keygen; #先使用ssh-keygen命令生成 密钥

ssh-copy-id userTom@host   #复制SSH密钥到目标主机

ssh userTom@host  #无密码即可登录

通过跳板机(host1) 操作无法直接访问的远程主机host2

在此过程中要先输入host1的密码,再输入host2的密码,就可操作host2

ssh -t host1 ssh host2

端口映射

假如公司内网有1台web服务器,名为webserver,但是只对内不对外,外网就无法直接访问,但可用ssh进行端口映射来实现外网访问内网的web服务器

** webserver可以用ssh登录到 远端主机remoteserver**:

  • 查看remoteserver是否开通3000端口netstat -an|grep 3000 没被占用就继续

  • 映射

ssh -R  3000:localhost:80  remoteserver

尝试打开内网服务器webserver上的网页

w3m http://127.0.0.1:3000/

如果能打开界面,说明映射成功.但这只能remoteserver机器访问webserver

因为3000端口绑定的是remoteserver机器的127.0.0.1端口。

可以编辑remoteserver机器上的/etc/ssh/sshd_config文件并添加如下内容:

添加内容GatewayPorts yes
把监听端口3000绑定到 0.0.0.0 地址上,这样外部的所有机器都能访问到这个监听端口,然后保存退出。重启ssh服务。
此时其它机器就可以访问内网的webserver,浏览器打开
http://remoteserver:3000/

scp - 传送文件 【本地主机】执行该命令!

  • 远程主机的/tmp/test 文件 复制到 本地主机的/bak文件夹下
    scp -p root@192.168.1.120:/tmp/test /bak

  • 远程主机的/root/lnmp0.4/ 目录 复制到 本地主机的目录
    scp -P 2222 -r root@www.tom.net:/root/lnmp/ /home/lnmp/

  • 将本地/bak/1234 文件 复制到 远程主机的/tmp路径下
    scp -p /bak/1234 root@192.168.1.120:/var/www/html

-p
保留原始文件的修改时间等
Preserves modification times, access times, and modes from the original file.

-r
Recursively copy entire directories. Note that scp follows symbolic links(软连接) encountered in the tree traversal.

-P port
更改了SSH默认端口后的端口,没改不用写该参数。
Specifies the port to connect to on the remote host. Note that this option is written with a capital ‘P’, because -p is already reserved for preserving the times and modes of the file in rcp(1).

sftp

禁用/删除openssh-server

CentOS / RHEL / Fedora Linux用户可以使用下面的yum命令禁用和删除openssh-server:

chkconfig sshd off

yum erase openssh-server
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

  • ssh常用用法小结 在我们日常的工作中,经常涉及到维护服务器,那么为了方便操作,以及安全方面的考虑,通常我们都会在...
    大晴天小阳光阅读 3,099评论 0 3
  • CA和证书安全协议(SSL/TLS)OpenSSH 一、CA和证书 (一) PKI(Public Key Infr...
    哈喽别样阅读 1,381评论 0 0
  • OpenSSH是SSH连接工具的免费版本。telnet,rlogin和ftp用户可能还没意识到他们在互联网上传输的...
    醋留香阅读 12,045评论 0 33
  • 1、安全协议SSL/TLS SSL: Secure Socket LayerTLS: Transport Laye...
    张大志的博客阅读 439评论 0 0
  • 也就当身体真正发生异样时,才能清醒且懊悔地认识到一些事。 仰躺在床上,将身体能进行皮肤接触的部位,紧紧...
    龙杰live阅读 313评论 0 0