Psychz——Swarup
投票:0发布时间:2018-02-23 04:39:59
这就跟你问声好!
SSH代理转发是一种与远程机器上的SSH代理通信的方式。要了解SSH代理转发,首先要对SSH密钥和SSH代理有一个简单的了解。
SSH代理人
SSH代理人是一个存储SSH客户端的私钥并在SSH认证时响应的程序。正如我们所知,SSH密钥是一对公钥和私钥。公钥存储在远程主机上,私钥存储在本地主机上。当您尝试连接到远程主机时,远程主机将尝试验证您的身份,并且每次都需要一个密码短语。
SSH代理人只需在每次尝试连接到远程服务器时阻止您在密码短语中键入打字的启动工具即可。它通过缓存在私钥中缓存并处理SSH的SSH的身份验证部分来实现。您可以每次要连接到远程主机时启动SSH代理,也可以将其配置为自动运行。在运行之前,您应该在当前登录会话中运行SSH代理SSH客户机。
您可以运行任何命令以启动SSH代理。
1.美元ssh-agent壳
以下“$ shell”是当前登录会话的登录外的名称。您可以根据您的登录shell输入其他环境变量的名称,例如Bash,KSH,CSH等。
2.您还可以使用以下命令。
eval ssh-Agent
向SSH代理添加密钥
启动SSH代理后,下一步是向SSH代理添加私钥。可以通过运行以下命令来实现。密钥的身份缓存到SSH代理中。
ssh-add
如果有多个键,则可以通过“ssh-add”命令添加参数。例如,“ssh-add1”可以添加第一个私钥。如果不添加任何参数,则添加默认键。
删除SSH代理密钥
SSH agent中可以删除密钥身份。
ssh的东西
- d path_of_the关键
(如果您想删除所有的标识,请使用“-D”参数。)
代理转发
既然我们现在已经对SSH代理有了基本的了解,让我们继续讨论SSH代理转发。我们知道SSH客户机与SSH代理在本地机器上进行身份验证交互。但是,在某些情况下,SSH客户端还可以与远程机器上的SSH代理进行交互。让我们举个例子来解释一下。
1.假设我们坐在计算机L上,希望SSH远程服务器R,安装在L上的SSH代理将使用存储在L中的私钥对连接进行身份验证。
2.现在让我们假设我们想要从R复制一个文件到位于L的另一个服务器P。当我们尝试这样做时,L的SSH代理成功地完成了它的功能,并建立了从L到R的连接,但是由于R没有l的私钥,所以没有建立R到P的连接。这种情况可以通过SSH代理转发来很容易解决。
启用代理转发
启用代理转发功能后,远程服务器充当SSH代理。本地机器L向远程服务器发送请求,要求启动代理转发。当请求被接受时,远程机器R充当SSH代理。当R想要建立与P的连接时,P将R解释为SSH代理并建立连接。有一些选项可以开启代理转发。
1.SSH配置文件保存在“~/.shh/config”中。将配置文件中的参数“ForwardAgent”修改为“yes”。
2.可以通过命令行开启座席转发功能。
ssh -o "ForwardAgent yes"
关于代理转发的安全问题
对于许多与服务器相关的活动(如服务器部署),代理转发是一个非常常见的过程。在代理转发期间,本地计算机的私钥不会出现在远程服务器上。访问远程服务器的用户无法获取本地机器的私钥。
但是,不推荐使用代理转发,因为它有轻微的安全风险。关于密钥的所有信息都被转发到远程主机,任何具有权限的用户都可以使用身份验证信息来访问连接。因此,在您完全信任远程服务器之前,不建议实现代理转发。