仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2689|回复: 19
打印 上一主题 下一主题

[其他Linux] Linux编程之SSH小技能仓酷云

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:30:10 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基的。
参考:
SixThingsIwishMomtoldme(aboutssh)
UsingRsyncandSsh
用过linux的,对SSH应当就对照熟习了,但有些技能大概你一定晓得。
毗连乐成后运转命令

我们都晓得能够经由过程SSH猎取远程shell,然后运转命令。假如只想运转单个命令的话,间接把命令附加在SSH命令以后便可,如
  1. wdaher@rocksteady:~$sshbebopuname-aLinuxbebop2.6.32-24-generic#39-UbuntuSMPWedJul2805:14:15UTC2010x86_64GNU/Linux
复制代码
这个最好分离不必输出暗码的SSH登录。假如想猎取python版本,间接"sshhostnamepython-V"
但有些命令大概会报错,如"top"
  1. wdaher@rocksteady:~$sshbeboptopTERMenvironmentvariablenotset.
复制代码
这时候只需加上"-t"参数就好了。
这里我们实行ssh毗连时并没有指定详细的主机名(ip)和用户,而只是"bebop",这是怎样做到的呢?且看下文
利用别号

假设在一个主机上为分歧用户分离守旧了分歧的ssh账号,毗连时就得如许
  1. wdaher@rocksteady:~$ssh-p2222bob.example.comwdaher@rocksteady:~$ssh-p8183waseem@alice.example.comwdaher@rocksteady:~$ssh-p31337-lwaseemiowsd.example.com
复制代码
很贫苦,并且端口大概其他参数有变化的话,纷歧定记得住。实在只需设置一下.ssh/config文件就能够了。
  1. HostbobHostNamebob.example.comPort2222UserwdaherHostaliceHostNamealice.example.comPort8183UserwaseemHostselfHostNamewsd.example.comPort31337Userwaseemio
复制代码
毗连时,就酿成如许了
  1. wdaher@rocksteady:~$sshbobwdaher@rocksteady:~$sshalicewdaher@rocksteady:~$sshself
复制代码
是否是很便利,假如SSH的参数改动的话,修正设置文件就好了,命令稳定。
端口转发

假定有这么个情形:你已上班回家,这时候想要检察公司内网(analytics)的某个web页,但只能SSH到本人在公司的电脑(desktop),desktop和analytics在一个局域网。
先来看一段命令
  1. sshdesktop-L8080:desktop:80
复制代码
这段命令暗示的是ssh连到desktop后,转发当地8080端口到desktop的80端口,这时候,假如会见"http://localhost:8080",就会转发到desktop的80端口。如许的话,把desktop:80换成analytics:80不就半途而废了吗
  1. sshdesktop-L8080:analytics:80
复制代码
如许会见当地的8080端口,就会转到analytics的80端口,经由过程desktop这个跳板。
加倍与日俱增的办法是利用-D参数,将desktop酿成一个socks5代办署理服务器(对这个-D命令,人人应当都很熟习了吧),然后在扫瞄器中设置代办署理为"localhost:8080"
  1. sshdesktop-D8080desktop
复制代码
如许一切的扫瞄器会见城市经由过程desktop举行转发,也就是说间接会见http://analytics就能够了。(analytics地点在hosts里设置,如192.168.1.110analytics)
利用"~"

“~”(不包含引号)是ssh保存字符,在新行输出"~“后,能够共同良多键,个中最经常使用的就是”~.“和”~^Z"(Ctrl+Z)
“~.”会停止ssh毗连,假如中止了毗连,又不想等sshsession过时,就能够利用这个快速键。
“~^Z”会把以后的ssh毗连放到背景,等完成了其他事情后,再把这个毗连掏出来。
  1. wdaher@rocksteady:~$sshbebopwdaher@bebop:~$sleep10000wdaher@bebop:~$~^Z[suspendssh][1]+Stoppedsshbebopwdaher@rocksteady:~$#Dosomethingelsewdaher@rocksteady:~$fg#andyoureback!
复制代码
经由过程authorized_keys指定登录后要实行的命令

这个跟后面提到的"毗连乐成后运转命令"纷歧样,这个命令是界说在authorized_keys里的,ssh连上后,只能实行该命令,而且实行完后当即加入。
先看看一般的authorized_keys
  1. ssh-dssAAAAB3NzaC1kc3MAAAEBAKYJenaYvMG3nHwWxKwlWLjHb77CT2hXwmC8Ap+fG8wjlaY/9t4uA+2qx9JNorgdrWKhHSKHokFFlWRj+qk3q+lGHS+hsXuvta44W0yD0y0sW62wrEVegz+JVmntxeYc0nDz5tVGfZe6ydlgomzj1bhfdpYe+BAwop8L+EMqKLS4iSacNjoPlHsmqHMnbibn3tBqJEq2QJjEPaiYj1iP5IaCuYBhuTKQGa+oyH3mXEif5CKdsIKBj46B0tCy0/GC7oWcUN92QdLrUyTeRJZsTWsxKpRbMliD2pBh4oyX/aXEf8+HZBrO5vQjDBCfTFQA+35Xrd3eTVEjkGkncI0SAeUAAAAVAMZSASmQ9Pi38mdm6oiVXD55Kk2rAAABAE/bA402VuCsOLg9YS0NKxugT+o4UuIjyl6b2/cMmBVWO39lWAjcsKK/zEdJbrOdt/sKsxIK1/ZIvtl92DLlMhci5c4tBjCODey4yjLhApjWgvX9D5OPp89qhah4zu509uNX7uH58Zw/m6ZOLHN28mV5KLUl7FTL2KZ583KrcWkUA0Id4ptUa9CAkcqn/gWkHMptgVwaZKlqZQtEa0V2IwUDWS097p3SlLvozw46+ucWxwTJttCHLzUmNN7w1cIv0w/OHh5IGh+wWjV9pbO0VT3/r2jxkzqksKOYAb5CYzSNRyEwp+NIKrY+aJz7myu4Unn9de4cYsuXoAB6FQ5I8AAAEBAJSmDndXJCm7G66qdu3ElsLT0Jlz/es9F27r+xrg5pZ5GjfBCRvHNo2DF4YW9MKdUQiv+ILMY8OISduTeu32nyA7dwx7z5M8b+DtasRAa1U03EfpvRQps6ovu79mbt1OE8LS9ql8trx8qyIpYmJxmzIdBQ+kzkY+9ZlaXsaU0Ssuda7xPrX4405CbnKcpvM6q6okMP86Ejjn75Cfzhv65hJkCjbiF7FZxosCRIuYbhEEKu2Z9Dgh+ZbsZ+9FETZVzKBs4fySA6dIw6zmGINd+KY6umMWyJNej2Sia70fu3XLHj2yBgN5cy8arlZ80q1Mcy763RjYGkR/FkLJ611HWIA=thisuser@thishost
复制代码
修正以后,就是如许
  1. wdaher@rocksteady:~$sshbeboptopTERMenvironmentvariablenotset.0
复制代码
实在就是在最后面加了from和command,from标明从哪一个ip连过去的,假如是用adsl拨号上彀,ip会常常变化,能够把这个参数往失落。command标明毗连乐成后要实行的命令,能够在command里限定该用户能够实行的命令(别忘了加上可实行权限),假定限定该用户只能实行rsync命令:
  1. wdaher@rocksteady:~$sshbeboptopTERMenvironmentvariablenotset.1
复制代码
$SSH_ORIGINAL_COMMAND暗示的是用户实践实行的命令
其他技能

克制Root用户登录

同意root用户登录太伤害了(固然很便利),由于能够删除任何文件,能够在’/etc/ssh/sshd_config’里设置一下。
  1. wdaher@rocksteady:~$sshbeboptopTERMenvironmentvariablenotset.2
复制代码
免暗码登录

先用ssh-keygen天生一对私钥和公钥,然后把公钥增加到远程主机的authorized_keys里就好了
  1. wdaher@rocksteady:~$sshbeboptopTERMenvironmentvariablenotset.3
复制代码
如许下次就能够间接登录了

--EOF--

看不懂man文档的人.在linux中,命令可分为系统基本命令和应用程序命令.系统基本命令是所有的unix类系统都支持的命令,走到哪都不变,只要是unix类系统上就肯定有.
灵魂腐蚀 该用户已被删除
沙发
 楼主| 发表于 2015-3-19 04:10:16 | 显示全部楼层
其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-18 14:05

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表