路由器设置网

服务器设置篇之SSH日常用法小例

  注意:测试全部是在linux系统上进行,如果你使用windows系统,可以好好研究putty和xshell的各类选项,一定会找到实现的办法!

  1. 最普通登陆方法,

  root192.168.1.200

  -l

  root 192.168.1.200

  即:ssh 或 ssh -l username hostIPorName

  2. 使用主机别名,简化登陆修改~/.ssh/config文件(如没有该文件,创建之),添加如下内容:

  host server1

  192.168.1.200

  user root

  host server2

  192.168.1.220

  user root

  指定了server1是192.168.1.200的别名,使用root用户;server2是192.168.1.220的别名,root用户。所以登陆操作简化为:

  server1#等价于

  root192.168.1.200

  lhzhiserver1# 等价于

  lhzhi

  @

  192.168.1.200

  3. ssh公私钥认证,继续简化登陆公私钥认证是个伟大的发明,linux上使用ssh-keygen生成密钥,然后将公钥传到ssh服务器上:

  ~.sshrsa

  ssh-copy-id~.sshtest.pub server1

  ssh-copy-id~.ssh

  /

  test.pub server2

  第一个命令会生成一对密钥,保存在~/.ssh/目录下,test是私钥,test.pub是公钥。解开私钥的密码是指定的testpw,密钥的是生成算法是rsa。后面两个命令ssh-copy-id把公钥传到server1和server2上以后,就能够登陆server1和server2,而不需要输入密码,但是有可能需要输入解开密钥对的密码,在我的ubuntu上,只是每次开机之后第一次解开密钥输入解开密钥的密码,以后再不用输入。

  4. 携带认证代理登陆

  现在已经把公钥上传到server1和server2,那么从server1登陆server2依然要输入server2的密码,那有什么办法可以避免这次密码输入呢?使用ssh的-A参数即可。

  过程是:

  server1#登陆server1

  root192.168.1.220

  # 从server1免密码登陆server2

  -A 参数登陆的时候会携带认证代理,具体是什么意思不清楚,我的理解是携带了私钥,导致不用输入密码。 这种办法很适合做跳板机登陆内部服务器。

  5. 嘘!翻墙

  GFW屏蔽了很多境外网站,如youtube、cebook、twitter等,大家都知道可以vpn访问。除此之外还有更简单的方法—-ssh,ssh是加密传输的,因此GFW对它为力。具体原理是建立一条ssh通道,然后,所有进出的数据都通过该加密通道传递。

  前提是你有一台能连接境外网站的ssh服务器。实现翻墙的办法是在ssh中加入-D参数,另外需要浏览器代理软件配合。chrome下使用SwitchySharp,firefox下使用autoproxy。假如,这台境外服务器是serverproxy。

  serverproxy

  -D 参数指定了本地7070为动态应用层转发端口。在翻墙过程中,不能断开该连接!

  注意:在代理软件中选择 socks 5,端口选择7070。然后恭喜你,突破了长城,可以在浏览器里打开各种被屏蔽的网站,嘘,千万别说是我教你的!

  6. scp传输文件scp是最好用的数据传输办法之一,上传下载都很方便,使用ssh的22端口传递。scp比如本地有一个文本文件的目录/root/aaadir,把这个目录传到远程服务192.168.1.200器/var目录下的方法是:

  rootaaadir server1:var

  参数解释:

  -r 由于是传输的一个目录,所以使用-r递归传输目录下的所有文件

  -C 为了加快传输速度,使用-C压缩传输

  注意:如果使用scp输入密码之后报错“bash: scp: command not found”,很可能是远程服务器没有安装openssh-clients,安装之后就可以了!

  7. sftp 传输文件

  ftp是一个很有用的工具,但是在没有搭建ftp的中要使用ftp也是能办到的。sftp就是一个很好的工具,里面有类似ftp里的put和get等等很多命令,而且是基于ssh实现的!

  登陆办法是:

  sftp server2然后像使用ftp一样可以进行上传,删除,下载等操作了。十分简单吧!!!

  8.杂记

  还有一些小问题值得注意,如果登陆过程发现速度忙或者等问题,可以使用ssh -v 来显示详细的登陆过程信息。

  为了安全,有些管理人员会修改默认ssh服务器的默认端口号,避免被扫描到,这是登陆ssh服务器就要使用-p参数指定修改过的端口号!

  ssh还有很多高级的用法,但以上是我日常中常用到的,有其它需求可以查看ssh命令的man手册,里面应有尽有!

标签: