ssh学习

作者: axboy | 来源:发表于2017-10-27 22:54 被阅读0次
  • 生成密钥

    1. 默认密钥

      ssh-keygen -t rsa -C zcw1994@live.com
      
    2. 生成自定义文件名密钥

      ssh-keygen -t rsa -f ~/.ssh/id_rsa_github -C zcw1994@live.com
      
    3. 多密钥配置

      添加文件~/.ssh/config,内容如下

      Host test-github                        #网站本地别称,建议设置成网站域名,该行不要直接复制,具体见下文
      Hostname github.com                     #网站实际地址
      IdentityFile ~/.ssh/test-github         #密钥路径
      User zcw
      
    4. 多密钥测试

      ssh -v git@test-github
      

      @符号后面的地址需要使用config文件中的 host 的值,而不是 hostname ,所以说建议设置成一样,测试连接 github.com 不行,这个大坑

  • sshd安全

    vi /etc/ssh/sshd_config

    X11Forwarding no  #
    PermitEmptyPasswords no     # 禁止空密码
    MaxStartups  10             # 最多保持多少个未认证的连接,防止SSH拒绝服务
    PermitRootLogin no          # 禁止root登录,否则很容易被用来暴力猜解
    
  • ssh端口转发

    场景举例

    pc net ip lan ip service
    dev / 192.168.31.60 tomcat:8080
    A@prod 106.12.13.14 192.168.0.100 mongodb:27017
    B@prod / 192.168.0.101 mysql:3306
    • dev为本地开发机器,家庭宽带,无固定公网ip,运行tomcat服务,端口是8080

    • A@prod为阿里云服务器,有固定公网ip,运行mongodb服务,端口是27017

    • B@prod为阿里云服务器,无外网,和A@prod在同一局域网,运行mysql服务,端口是3306

    1. 代理服务器

      TODO

    2. 访问本地特定端口,访问远程指定服务

      • 需求示例1:从dev机器访问A@prod上的mongodb服务
      # 加上-f,在后台执行
      ssh sshUser@106.12.13.14 -C -N -g -L 27018:localhost:27017
      
      • 需求示例2:从dev机器访问B@prod上的mysql服务,利用A@prod作为跳板机
      ssh sshUser@106.12.13.14 -C -N -g -L 13306:192.168.0.101:3306
      
    3. ssh远程端口转发,访问远程特定端口,访问本地指定服务

      A@prod上需编辑/etc/ssh/sshd_config,修改GatewayPorts为yes,更多请查看man sshd_config
      
      • 需求示例:从A@prod访问本地dev机器的tomcat服务
      ssh sshUser@106.12.13.14 -C -N -g -R \
          localhost:18080:localhost:8080  \   # 访问远程18080端口,即本地8080的服务
          -o ExitOnForwardFailure=yes \
          -o ServerAliveInterval=60           # 客户端每60向服务器发送一次请求,服务器响应,从而保持连接
      
      • 自动填入密码脚本
      set password xxx
      spawn ssh sshUser@106.12.13.14 -C -N -g -R \
          localhost:18080:localhost:8080 \
          -o ExitOnForwardFailure=yes \
          -o ServerAliveInterval=60
      expect "password" {send "$password\r"}
      interact
      

相关文章

  • SSH学习

    用Windows通过ssh连接到Linux上时需要注意两者处于同一网络中,需要确定用户名是否对应于linux中的用户名。

  • ssh学习

    生成密钥默认密钥ssh-keygen -t rsa -C zcw1994@live.com生成自定义文件名密钥ss...

  • SSH学习

    SSH全称(Secure SHell)是一种安全的应用层网络协议,用于计算机间的安全通信,是目前一套成熟的远程登陆...

  • Mybatis(二)返回值、表查询

    之前对Mybatis有了初步的学习与使用,最近学习ssh发现ssh太重,我个人觉得,像hibernate事务,很多...

  • ssh 学习笔记

    介绍 Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提...

  • SSH key学习

    为什么作为IOS开发者需要学习了解SSH Key的用途?作为开发者或者希望在技术方面不仅仅限于app的开发,希望接...

  • 学习SSH框架

    1.SSH框架的认知 在做相关的java的网页的开发制作时,良好的层次分解是十分有比要的,所以我们在云涌第三方的框...

  • SSH学习实例

    1、下载SSH相关的所有依赖的Jar包,导入引用 2、spring整合struts 2 在Web容器中添加spri...

  • SSH学习笔记

    参考网址:http://www.cnblogs.com/programfish/p/4098091.html SS...

  • SSH 学习笔记

    教程[https://wangdoc.com/ssh/index.html]总结[https://segmentf...

网友评论

      本文标题:ssh学习

      本文链接:https://www.haomeiwen.com/subject/ryxjpxtx.html