ssh使用技巧

关于直接登录

由于总是要ssh到不同的机器中,手动输入用户名密码总是很慢。看学长ssh用到飞起,把相关的小技巧记录一下,感觉还是挺能提高效率的。
首先是config文件的使用,通过在~/.ssh/config文件中按对应的规则进行设置,相当于是创建了快捷方式,简化了之前 username@hostip 的操作。比如在文件中进行如下配置
Host 01
HostName 10.10.10.01
User admin
之后在需要使用 ssh 01 或者 scp 或者使用其他需要用到 username@hostip 相关的命令的时候,就只需要使用01 来进行替代,这样就相当于是创建了快捷方式,确实方便了不少。
对于常常需要登录的机器,当然没有必要每次输入用户名和密码,只需要采用rsa的加密认证方式,把自己的公钥发给对方服务器的指定的文件夹中,当然操作也很简单,先通过ssh-keygen -t rsa 来在本机上产生公钥和私钥,默认情况下是生成在~/.ssh目录之下,之后只需要 ssh-copy-id -i 公钥文件路径 host别名这样就可以轻松完成,这样操作还是方便不少,大大提升效率。

再补充一个技巧就是hostname命令的使用,通常在多态机器上操作的时候,开了许多terminal用户名都是localhost很容器弄重复,可以登上去之后 hostname <alias name> 这样操作,之后退出terminal再登上去之后,就现实的是alias name了,比较直接。

关于ssh隧道

这里主要记录下-i 参数的使用
-L port:host:hostport
将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

一些使用的场景:比如想要对服务端的数据进行修改操作,但是服务器只能通过ssh秘钥认证的方式连接上去,这个时候可以使用-l参数,比如
ssh -p 58513 -L 4306:10.10.220.56:3306 wangzhe_10_10_220_56@123.59.140.26 这个时候直接连接本地的4306端口,就可以连接到服务端的数据库了。

-i 参数的使用

通过-i 参数,可以指定在发送ssh请求时候所使用的私钥文件的地址。

不同主机之间通过ssh相互连接

http://blog.csdn.net/redhat7890/article/details/5131803

posted @ 2015-05-28 15:59  hessen  阅读(483)  评论(0编辑  收藏  举报