当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 两台linux服务器之间用RSA键对的方法SSH/SCP不需密码

Linux服务器
使用PXE协议远程安装LINUX
在linux操作系统中如何截获系统调用
出错也不怕—linux系统紧急情况处理方法
在Linux下设置WWW Server(1)
在Linux下设置WWW Server(2)
linux日志管理(一)
关于Linux系统下Grub启动流程的讨论总结
新手学堂 十种提高Linux系统安全性的招数
在AS4上架设QMAIL+反病毒垃圾模块的方法
教你配置Linux系统安全管理服务
Linux服务器集群系统实现方案详细解析
Ubuntu Linux上安装SSH和Vsftpd的方法
tomcat及jdk安装配置文档
Ubuntu6.06 Linux安装Mplayer过程解析
新手看招 手把手教你安装VMware虚拟机
linux日志管理(二)
Linux磁盘存储区管理原理与技巧(一)
Linux磁盘存储区管理原理与技巧(二)
Linux磁盘存储区管理原理与技巧(三)
浅谈Linux文件系统反删除方法(一)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 41 ::
收藏到网摘: n/a

  JepheWu(吴阿亭)
  软硬件环境:
  两台linux服务器A和B
  都编译安装上最新版的openSSH(建议)
  
  openSSH的默认设置是允许root可以直接login.(PermitRootLoginyes),暂且保留这种设置,我们先考虑如何
  用SSH直接从A到B不需要密码,假设用用户root登录到A,想SSH到B也作为root不需要密码。
  
  1。分别从A和B上登录作为root后运行ssh-keygen,目的是简单地在/root下创建目录.ssh,当提示输入
  passphase时打入两次回车。这将生成/root/.ssh/identityand/root/.ssh/identity.pub
  
  2。先测试一下,从A登录作为root,打入#sshB,会要求提示rootpassword。
  
  3。现在从A登录作为root,运行scp/root/.ssh/identity.pubB:/root/.ssh/authorized_keys。
  文件名必须不能弄错。
  
  4。现在再从A运行#sshB则不需要密码了:)
  
  基本原理:
  1。如果你希望从A作为用户user1SSH到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上以用户rootSSH到B上作为普通用户user而不是root,因为为了安全,有时不需要作为root,只需要作
  为普通用户不需要密码以完成相应工作即可。
  
  登录作为root在A上
  A#scp/root/.ssh/identity.pubuser@B:/home/user/.ssh/authorized_keys
  
  2.tar一批文件从A到B。
  A#tarcvf-/etc|(sshBtarxvf-)
  
  3.运行A上的cronjob,对某文件作改动后传到B
  01***cat/etc/shadow|awk-F:{print$1":"$2}|(sshBcat>/home/passwd)
  
  常见问题:
  1。这种方式的SSH需要B上的sshd_config中允许直接的rootlogin(PermitRootLoginyes).
  2.我有服务器A和其它服务器B,C,D。我想从ASSH到这些服务器但不要自动,最好输入RSApassphase,但太
  麻烦,怎么办?
  a.要A上运行ssh-keygen时输入passphase字。
  b.要登录到A上后运行A#ssh-agentbash
  c.再运行ssh-add加passphase进入内存
  d.再运行sshBorSSHCorSSHD,则不再需要密码,密码对只需输一次
  
  e.最后退出shell前输入ssh-agent-k。