灵魂腐蚀 发表于 2015-1-18 11:30:10

Linux编程之SSH小技能仓酷云

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

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

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

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

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

这个跟后面提到的"毗连乐成后运转命令"纷歧样,这个命令是界说在authorized_keys里的,ssh连上后,只能实行该命令,而且实行完后当即加入。
先看看一般的authorized_keys

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
修正以后,就是如许

wdaher@rocksteady:~$sshbeboptopTERMenvironmentvariablenotset.0
实在就是在最后面加了from和command,from标明从哪一个ip连过去的,假如是用adsl拨号上彀,ip会常常变化,能够把这个参数往失落。command标明毗连乐成后要实行的命令,能够在command里限定该用户能够实行的命令(别忘了加上可实行权限),假定限定该用户只能实行rsync命令:
wdaher@rocksteady:~$sshbeboptopTERMenvironmentvariablenotset.1$SSH_ORIGINAL_COMMAND暗示的是用户实践实行的命令
其他技能

克制Root用户登录

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

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

--EOF--

看不懂man文档的人.在linux中,命令可分为系统基本命令和应用程序命令.系统基本命令是所有的unix类系统都支持的命令,走到哪都不变,只要是unix类系统上就肯定有.

精灵巫婆 发表于 2015-1-21 08:49:41

如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。

小妖女 发表于 2015-1-25 10:36:44

其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。

老尸 发表于 2015-1-28 09:34:55

随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。

变相怪杰 发表于 2015-2-2 16:29:11

笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机

莫相离 发表于 2015-2-8 01:03:43

最好先搜寻一下论坛是否有您需要的文章。这样可以获得事半功倍的效果。

飘灵儿 发表于 2015-2-13 04:02:13

笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机

柔情似水 发表于 2015-3-5 15:38:29

在学习linux的工程中,linux学习方法有很多种,这里是小编的学习心得,给大家拿出来分享一下。

深爱那片海 发表于 2015-3-12 09:22:24

学习Linux半年了~个人认为不会的多在网上找资料网上有很多资料可以搜索到,LS那位说放手去搞。

谁可相欹 发表于 2015-3-15 09:28:37

Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。

灵魂腐蚀 发表于 2015-3-19 04:10:16

其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。

仓酷云 发表于 2015-3-23 18:15:45

任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.

冷月葬花魂 发表于 2015-3-27 10:06:21

其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。

小魔女 发表于 2015-3-31 04:24:23

再次,Linux是用C语言编写的,我们有学习C语言的基础,读程序和编写代码方面存在的困难小一点,也是我们能较快掌握的原因之一。?

分手快乐 发表于 2015-4-6 08:49:07

以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。

山那边是海 发表于 2015-4-14 16:44:03

其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。

飘飘悠悠 发表于 2015-5-4 23:06:35

在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。

admin 发表于 2015-5-6 09:40:44

下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。

若相依 发表于 2015-5-6 10:09:40

Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。

因胸联盟 发表于 2015-5-8 00:55:23

一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢。
页: [1]
查看完整版本: Linux编程之SSH小技能仓酷云