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

加载.env的环境变量到系统上

加载.env的环境变量到系统上

linux,mac

MacOS或Linux上的密码生成器

有时侯我们需要生成一个随机的密码,但是想破头不知用什么好? 这里提供一个简单的bash让我们轻易的生成一组密码在终端机上。

linux

如何在RHEL 7/CentOS7/Fedora变更timezone

在新版的RHEL 7/CentOS 7或Fedora上,我们可以透过timedatectl来查看状态及进行调整。