您的位置:首页 > 运维架构 > Linux

Linux下SSH的配置使用

2013-05-07 11:04 246 查看
Linux命令行下登陆远程服务的重要工具SSH

SSH用法

ssh user@hostname

常用参数:

-D 打开SOCKET代理,将本地的请求通过服务器转发

-L 将本地的一个端口映射到服务器可以访问到的另一台机器的某个端口

eg:

ssh user@hostname -D 10001 (在服务器上打开一个socket代理,通过本机127.0.0.1:10001端口连接)

ssh user@hostname -L 3306:127.0.0.1:3306 (连接 本机的3306端口,就相当于直接连接服务器的3306端口)

SSH AGENT的使用

当我们需要从本机连接到一台服务器,然后再从该服务器连接到其他机器的时候,通常情况下,我们需要在每台机器上都放置自己的私钥来实现ssh登陆。

这时,就可以使用ssh agent来实现私钥的共享,从而避免把私钥复制到每台机器。

主要使用到的命令:

ssh-agent: ssh-agent is a program to hold private keys used for public key authentication (RSA, DSA).

ssh-add: adds RSA or DSA identities to the authentication agent

(两个命令的具体用法就不写了,man里面都看的到)

ssh_config: OpenSSH SSH client configuration files

vi ~/.ssh/config

Host: *

ForwardAgent yes

#save

这里的 ForwardAgent yes就是表明,我们连接host时将会使用agent机制

SSH PROXY的使用

当要ssh登陆的一台机器处于另外一个内网时,可能无法直接登陆,而必须经过一台公用的代理服务器作为跳转来登陆它。

比如我们要登陆的机器A:192.168.1.2,它只有内网IP,无法从外网登陆。

所以,必须要先登陆机器B:www.somehost.com,然后从B上再执行SSH才行。

这时,首先想到的是使用上面介绍的 SSH-AGENT的方法实现2次登陆。

但是其实,ssh 已经有了更方便的方式:

ProxyCommand: Specifies the command to use to connect to the server.

只要在 ~/.ssh/config 中加入如下的配置,就可以直接实现代理登陆了:

Host ServerA

HostName 192.168.1.2

User username

ProxyCommand ssh www.somehost.com nc %h %p

>ssh ServerA

直接执行上面的命令,就可以登陆A机器啦。

* ProxyCommand后面跟的就是一个标准的 ssh命令,它的作用是登陆机器同时执行nc命令
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: