频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

如何在两台linux服务器之间用RSA键对的方法SSH/SCP不需密码

来源: 作者: 出处:巧巧读书 2006-08-06 进入讨论组

  Jephe Wu (吴阿亭)
  软硬件环境:
  两台linux服务器A和B
  都编译安装上最新版的openSSH(建议)
  
  openSSH的默认设置是允许root可以直接login. (PermitRootLogin yes),暂且保留这种设置,我们先考虑如何
  用SSH直接从A到B不需要密码,假设用用户root登录到A,想SSH到B也作为root不需要密码。
  
  1。 分别从A和B上登录作为root后运行ssh-keygen,目的是简单地在/root下创建目录.ssh,当提示输入
  passphase时打入两次回车。这将生成/root/.ssh/identity and /root/.ssh/identity.pub
  
  2。 先测试一下,从A登录作为root,打入#ssh B,会要求提示root password。
  
  3。 现在从A登录作为root,运行scp /root/.ssh/identity.pub B:/root/.ssh/authorized_keys。
  文件名必须不能弄错。
  
  4。现在再从A运行#ssh B则不需要密码了:)
  
  基本原理:
  1。 如果你希望从A作为用户user1 SSH 到B 作为用户user2, 若要用RSA键对法认证且不需要密码,则B上的ssh
  后台程序拿出~user2/.ssh/authorized_keys中的与A有关的RSA公钥来对A上的以user1身份运行的ssh客户程序
  进行挑战,前面我们已经把A上的identity.pub拷贝到B上作为authorized_keys了。则A保持私钥identity,而B
  上的sshd又拿出A的公钥来挑战,因此成功,你可以加很多行到authorized_keys以允许其它服务器的公钥可以加
  进来。
  
  常见应用举例:
  
  1。 在A上以用户root SSH到B上作为普通用户user而不是root,因为为了安全,有时不需要作为root,只需要作
  为普通用户不需要密码以完成相应工作即可。
  
  登录作为root在A上
  A# scp /root/.ssh/identity.pub user@B:/home/user/.ssh/authorized_keys
  
  2. tar一批文件从A到B。
  A# tar cvf - /etc | ( ssh B tar xvf -)
  
  3. 运行A上的cronjob,对某文件作改动后传到B
  0 1 * * * cat /etc/shadow | awk -F: {print $1":"$2} | (ssh B cat > /home/passwd)
  
  常见问题:
  1。 这种方式的SSH需要B上的sshd_config中允许直接的root login (PermitRootLogin yes).
  2. 我有服务器A和其它服务器B,C,D。我想从A SSH到这些服务器但不要自动,最好输入RSA passphase,但太
  麻烦,怎么办?
  a. 要A上运行ssh-keygen时输入passphase字。
  b. 要登录到A上后运行A#ssh-agent bash
  c. 再运行ssh-add加passphase进入内存
  d. 再运行ssh B or SSH C or SSH D,则不再需要密码,密码对只需输一次
  
  e. 最后退出shell前输入ssh-agent -k 。图 文 结 合:http://www.qqread.com/linux/2006/08/s858195061.html 更多文章 更多内容请看SSH技术手册FTP服务器网吧服务器专栏专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章