zoukankan      html  css  js  c++  java
  • ssh 常用技巧

    连接中转

    有时候你可能需要从一个服务器连接另外一个服务器,比如在两个服务器之间直接传输数据,而不用通过本地电脑中转:
      www1 $ scp -pr templates www2:$PWD
      (顺便说一下,当你需要在两台服务器间拷贝文件时,$PWD变量是非常有用的),因为即使你已经在两台服务器上添加了你本地电脑的公钥,scp默认仍然会提示你输入密码:这是因为你用来作为跳板的那台服务器上并没有你的私钥,所以,第二台服务器会拒绝你的公钥,但是一定不要通过将你的私钥拷贝到中转服务器上来解决这个问题,你可以使用agent forwarding来解决这个问题,只要在你的.ssh/config文件中加入下面这行代码就可以了:ForwardAgent yes或者是在Putty中勾上“Allow agent forwarding”选项,本地SSH就变成了第一台服务器的SSH代理,从第一台服务器在连接其它服务器就变和和在你本地一样简单,注意,如果要开启这个选项,前提是这个中间服务器值得你信任。
     

    免密登录

    如果觉得每次登录都需要填写密码,那么可以试试SSH Keys,首先使用OpenSSH为自己生成一对密钥:
      $ ssh-keygen
      跟随指示,完成之后,你应该可以在你的.ssh目录下看到两个文件,id_rsa就是你的私钥,而id_ras.pub则是你的公钥,现 在你需要将你的公钥拷贝到服务器上,如果你的系统有ssh-copy-id命令,拷贝会很简单:
      $ ssh-copy-id
    否则,你需要手动将你的公钥拷贝到服务器上的~/.ssh/authorized_keys文件中:
      $ < ~/.ssh/id_rsa.pub ssh ‘mkdir -p .ssh; cat >> .ssh/authorized_keys; chmod go-w .ssh .ssh/authorized_keys’

    别名
      使用ssh 登录远程主机需要使用 $ ssh username@ip 的格式。每次登录都要输入这些东西很麻烦,所以我们可以给固定的 username@ip 取个别名在~/.ssh/config 文件中添加如下内容:

    Host centos  #别名
        HostName 192.168.1.100 #远程主机ip
        User root  #欲登录的账户名
        Port 22   #端口号,这个也可以不设置,默认22端口

    这样的设置后 使用 $ ssh cnetos 等同于$ ssh -p 22 root@192.168.1.100 

    多条连接共享

    如果你需要在多个窗口中打开到同一个服务器的连接(有的服务器自身最小化,不支持分屏显示),而不想每次都输入用户名,密码,或是等待连接建立,那么你可以配置SSH的连接共享选项,在本地打开你的SSH配置文件,通常它们位于~/.ssh/config,然后添加下面2行:
      ControlMaster auto
      ControlPath /tmp/ssh_mux_%h_%p_%r
      试试断开你与服务器的连接,并建立一条新连接,然后打开一个新窗口,再创建一条连接,你会发现,第二条连接几乎是在瞬间就建立好了。
    如果本身就做了做了免密,这个东西也就没用了。
     
  • 相关阅读:
    log4j配置只打印指定jar或包的DEBUG信息
    实现cookie跨域访问
    使用轻量级Spring @Scheduled注解执行定时任务
    Docker容器里时间与宿主机不同步
    Wildfly8 更改response header中的Server参数
    JBoss部署项目log4j配置会造成死锁问题,浏览器访问一直pending状态
    json-lib-2.4.jar Bug,json字符串中value为"[value]"结构时,解析为数组,不会解析成字符串
    【转载】分享下多年积累的对JAVA程序员成长之路的总结
    web项目嵌入Jetty运行的两种方式(Jetty插件和自制Jetty服务器)
    rabbitmq+haproxy+keepalived实现高可用集群搭建
  • 原文地址:https://www.cnblogs.com/BMing/p/11072911.html
Copyright © 2011-2022 走看看