快速业务通道

在 Linux 上进行自动备份

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-07
[offsite]$ scp .ssh/id_dsa.pub accountname@server1.com:offsite.pub
accountname@server1.com''s password: (enter password, not new
passphrase!)
id_dsa.pub 100% |*****************************| 614 00:00

[offsite]$ scp .ssh/id_dsa.pub accountname@server2.com:offsite.pub
accountname@server2.com''s password: (enter password, not new
passphrase!)
id_dsa.pub 100% |*****************************| 614 00:00

新公钥安装之后,我们可以使用在创建私钥和公钥时指定的密码短语登录到每个机器上.现在,登录到每个机器并将 offsite.pub 文件的内容附加到名为 authorized_keys 文件中,该文件存储在每个远程机器的 .ssh 目录中.我们可以使用文本编辑器或 cat 命令将非现场 offsite.pub 文件的内容附加到 authorized_keys 文件:

清单 5. 将 offsite.pub 添加到授权密钥列表

[offsite]$ ssh accountname@server1.com
accountname@server1.com''s password: (enter password, not new
passphrase!)
[server1]$ cat offsite.pub >> ./ssh/authorized_keys

下面添加一些额外的安全性.我们更改 .ssh 目录的访问权,只允许所有者拥有读取、写入和执行的权限.其次,确保 authorized_keys 文件只能被其所有者访问.,删除以前上传的 offsite.pub 密钥文件,现在已不需要它了.确保正确设置访问权限非常重要, OpenSSH 服务器可能拒绝使用具有不安全的访问权的密钥.

清单 6. 使用 chmod 更改访问权限

[server1]$ chmod 700 .ssh
[server1]$ chmod 600 ./ssh/authorized_keys
[server1]$ rm offsite.pub
[server1]$ exit

在服务器 #2 上完成相同的过程之后,我们就可以返回到离线存储服务器来测试新的密码短语类型的访问.在离线服务器上,您可以键入如下内容:

[offsite]$ ssh -v accountname@server1.com

在检验您的帐户现在能够使用新的密码短语而不是旧密码来访问远程服务器时,使用 -v 或 verbose 标志选项来显示调试信息.除了能够让您从高层次了解认证过程的工作原理之外,调试输出还能够显示通过其他方式可能无法看到的重要信息.在后续连接中不必指定 -v 标志,但该选项对测试连接颇为有用.

使用 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;

使用 eval 命令可以指示 shell 执行 ssh-agent 显示的输出命令:

[offsite]$ eval `ssh-agent`
Agent pid 14198

eval 命令告诉 shell 计算(执行)ssh-agent 程序生成的命令.请确保使用的是反引号(`)而不是单引号.执行 eval `ssh-agent` 语句之后,它会返回代理的过程标识符.shell 变量 SSH_AUTH_SOCK 和 SSH_AGENT_PID 已经在后台导出并可以使用.可以将它们显示到 shell 控制台以查看它们的值:

[offsite]$ echo $SSH_AUTH_SOCK
/tmp/ssh-XX7bhIwq/agent.14197

$SSH_AUTH_SOCK(即 SSH Authentication Socket 的缩写)是一个本地套接字的位置,应用程序使用它与 ssh-agent 通信.为了确保变量 SSH_AUTH_SOCK 和

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号