by Devin Yang

建立于: 6年前 ( 更新: 6年前 )

在ssh的核心包中的进程诸如,scp、ssh、ssh-add、ssh-agent、sshd及ssh-keygen
本文主要简单描述ssh-agent及ssh-add使用情境。

在开始前先来看看这些命令用途的简介:
scp Secure Copy主机间进行加密安全的拷贝。
ssh Secure Shell客户端,用来连接伺服器运行系统命令,可以视为有加密的telnet。
ssh-add 把密钥识别加到验证代理员。
ssh-agent 进行公钥验证时,让远程主机可以访问保存您的私人钥匙。
sshd 默认会聆听通信埠22的Secure Shell伺服器。
ssh-keygen ssh的密钥生成器,可以生成公私钥对,进行远程主机的公钥验证。
我们使用 ssh-add 前,先来看看验证代理员(ssh-agent -- authentication agent),如何启动他?
非常简单,只要在命令行输入命令 ssh-agent 即可。
ssh-agent
完成后,我们就可以透过 ssh-add 命令,将密钥添加到 ssh-agent (验证代理员)。
未使用任何参数时, ssh-add 会去新建~/.ssh/id_rsa, ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 and ~/.ssh/identity.
密钥有密码时,会要求输入密钥的密码,如果提供了多个密钥档,他会记住最后一组输入的密码

用途一(记忆密码):
所以我们可以透过 ssh-add 把密码添加到 ssh-agent 来记忆我们的密钥密码,
这样我们连线到远程主机时就不需打复杂的密钥密码了。
我们可以透过-K,将密码记忆到钥匙圈中。(在Mac OS上重开机就会忘了ssh-agent密钥)

用途二 (转发验证代员连线): 噢太文言文了,说白一点,就是跨主机验证。

Client---->ServerA---->ServerB。

举例,Server A无法登录Server B,我们Client是能登A及B的。
我们可以透过 ssh -A ServerA ,因为有了-A参数,启动了转发(forwarding)功能,这样就连到ServerA再透过转发代理,使用我们的密钥连到ServerB了。
我们能透过,如下的命令 ssh-add -L 查看新建到ssh-agent的公钥。

不过每次激活这个功能好像很麻烦,所以我们也可以将他添加到自己的ssh组态档中。
~/.ssh/config
Host ServerA
  HostName 35.194.181.21
  ForwardAgent yes

Tags: linux security

Devin Yang

文章内容无法一一说明,如果您有什么不了解处,欢印提问哦:)

No Comment

Post your comment

需要登入才可留言!

类似文章


linux

关於setfacl

我想现在的Linux大多支持Access Control List (ACL)。在文件系统ACL激活的情况下, 我们可以设置额外的权限给不同的使用者或群组。 这让我们更加自由的来设置不同使用者的文件系统权限。 直接来看命令。

linux

如何检查apache加载并激活了那些modules?

如何检查apache加载并激活了那些modules?

linux

公钥验证之多个ssh的组态档

我们使用ssh公钥验证时,通常会在~/.ssh/config添加相关设置。 如果说有些是公司用的或是家里用的,是否可以使用多个config呢? 其实可以的,我们能git透过Include加载公司共用,有版本控制的config。