ssh 常用技巧

Posted bming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 [email protected] 的格式。每次登录都要输入这些东西很麻烦,所以我们可以给固定的 [email protected] 取个别名在~/.ssh/config 文件中添加如下内容:

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

这样的设置后 使用 $ ssh cnetos 等同于$ ssh -p 22 [email protected] 

 

多条连接共享

如果你需要在多个窗口中打开到同一个服务器的连接(有的服务器自身最小化,不支持分屏显示),而不想每次都输入用户名,密码,或是等待连接建立,那么你可以配置SSH的连接共享选项,在本地打开你的SSH配置文件,通常它们位于~/.ssh/config,然后添加下面2行:
  ControlMaster auto
  ControlPath /tmp/ssh_mux_%h_%p_%r
  试试断开你与服务器的连接,并建立一条新连接,然后打开一个新窗口,再创建一条连接,你会发现,第二条连接几乎是在瞬间就建立好了。
如果本身就做了做了免密,这个东西也就没用了。
 

以上是关于ssh 常用技巧的主要内容,如果未能解决你的问题,请参考以下文章

osx常用技巧

深入Nginx之《常用参数配置技巧》

SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件,本文主要介绍SecureCRT的使用方法和技巧

保持ssh连接长时间不断开的技巧

securecrt简介

Linux常用 bash