加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

在Linux上进行自动备份:轻松进行自主、安全、分布式网络备份

发布时间:2016-04-21 07:26:13 所属栏目:Linux 来源:网络整理
导读:重要数据的丢失可能意味着致命的破坏。尽管如此,还是有无数专业人员忽视了对他们的数据的备份。虽然原因可能各不相同,但是,最常见的一个解释是,执行例行备

使用 ssh-agent 自动化机器访问

ssh-agent 程序如同一个看门人,它根据需要安全地提供对安全密钥的访问。ssh-agent 启动后,它就会在后台运行,并且可以由 ssh 和 scp 程序等其他 OpenSSH 应用程序所使用。这就使得 ssh 程序可以请求一个已经解密了的密钥,而不是在每次需要时向您询问私钥的安全口令。

让我们来仔细研究一下 ssh -agent。ssh-agent 运行时它会输出 shell 命令:

清单 7. ssh-agent 应用

  [offsite]$ ssh-agent
  SSH_AUTH_SOCK=/tmp/ssh-XX1O24LS/agent.14179; export SSH_AUTH_SOCK;
  SSH_AGENT_PID=14180; export SSH_AGENT_PID;
  echo Agent pid 14180;

我们可以使用 shell 的 eval 命令来让 shell 执行 ssh-agent 显示的输出命令:

[offsite]$ eval `ssh-agent`

Agent pid 14198

eval 命令告诉 shell 去评价(执行)ssh-agent 程序生成的命令。确保您指定的是反引号(`)而不是单引号!执行后, eval `ssh-agent` 语句将返回代理的进程标识符。在幕后, SSH_AUTH_SOCK 和 SSH_AGENT_PID shell 变量已经被导出而可以使用。您可以将它们显示在 shell 控制台中来查看它们的值:

[offsite]$ echo $SSH_AUTH_SOCK

/tmp/ssh-XX7bhIwq/agent.14197

$SSH_AUTH_SOCK (SSH Authentication Socket 的缩写)是一个本地套接字的位置,应用程序可以通过它来与 ssh-agent 通信。将 eval `ssh-agent` 语句加入到您的 ~/.bash_profile 文件以确保 SSH_AUTH_SOCK 和 SSH_AGENT_PID 始终被注册。

ssh-agent 现在就已经成为一个后台进程,可以用 top 和 ps 命令查看得到。

现在我们就已经可以使用 ssh-agent 共享我们的口令。为此,我们必须使用一个名为 ssh-add 的程序,这个程序将我们的口令添加(发送)到运行着的 ssh-agent 程序。

清单 8. 用于免口令登录的 ssh-add

  [offsite]$ ssh-add
  Enter passphrase for /home/accountname/.ssh/id_dsa: (enter passphrase)
  Identity added: /home/accountname/.ssh/id_dsa
  (/home/accountname/.ssh/id_dsa)

现在,当我们访问 server1 时,不会再被提示输入口令:

[offsite]$ ssh accountname@server1.com

[server1]$ exit

如果您还不相信,那么尝试去掉( kill -9 )ssh-agent 进程,然后重新连接 server1。这一次,您将注意到,server1 将会询问存储在 .ssh 目录下 id_dsa 中的私钥的口令:

[offsite]$ kill -9 $SSH_AGENT_PID

[offsite]$ ssh accountname@server1.com

Enter passphrase for key '/home/accountname/.ssh/id_dsa':

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读