文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>建立ssh信任关系的方法

建立ssh信任关系的方法

时间:2007-04-14  来源:ima

简介

ssh提供了一个加密的信道,在建立信任关系后,通信双方都采用加密的方式传输信息.本文整理了用ssh建立信任关系的方法

ssh程序的一些约定

ssh程序默认在每个用户的主目录下建立目录.ssh,用来存放密钥以及其他文件.如果启动了ssh服务器,处理ssh请求,会建立这个文件夹,并生成一些东西,常见的有

  • authorization 一个记录一行,形式为 Key /home/secur/xx.pub ,表示和本机器建立信任关系的机器的公钥
  • identification 一个记录一行,形式为 IdKey /home/secur/xx ,表示一个私钥文件
  • hostkeys 一个文件夹,保存的是临时和本机建立信任关系的机器的公钥
  • random_seed

当第一次处理ssh请求时,在.ssh目录找不到目标主机的公钥,则会向目标主机取得一个公钥作为加密的工具,然后获取/etc/passwd和/etc/shadow数据库中的用户名和密码作为验证方法

建立信任关系的方法

现在要建立乙机器到甲机器的信任关系,建立后,在甲机器上执行ssh 乙机器 命令,将不用输入密码

  1. 在甲机器上执行 命令ssh-keygen,任意输入什么,会在主目录下的.ssh获得两个文件,id_dsa_2048_a和id_dsa_2048_a.pub
  2. 将两个文件分别改名为任意一个名字a和a.pub,在.ssh目录下执行 echo IdKey a >> identification;甲机器的设定完成
  3. 将a.pub复制到乙机器的用户目录的.ssh下,,在.ssh目录下执行 echo Key a.pub >> authorization

常见问题根源

  • ssh服务器配置,启动
  • 秘钥文件的权限,设置成644,不同环境可能要求不同

一个expect 自动建立两台机器信任关系的脚本

#!/usr/bin/expect -f set timeout 60 set ip "172.1.1.1" set user dom set port 4321 set host ${user}@${ip}#$port set destpath /home/${user}/.ssh2/ set localpath ./ set passwd abcd set pri ${localpath}${ip}.id_dsa_2048_a set pub ${localpath}${ip}.id_dsa_2048_a.pub spawn ssh $host expect "*>*" {close;exit 0} \ "password*" {close;wait} spawn ssh-keygen expect "*Passphrase* " {send "\n"} expect "Again*" {send "\n"} expect eof {wait} exec mv ${localpath}id_dsa_2048_a $pri exec mv ${localpath}id_dsa_2048_a.pub $pub exec echo IdKey $pri >> ${localpath}identification spawn scp ${pub} ${host}:${destpath} expect "Are you*" {send "yes\n"} \ "*password*" {send "${passwd}\n"} expect "*password*" {send "${passwd}\n"} \ eof {wait} spawn ssh $host expect "*password*" {send "${passwd}\n"} send "echo Key $pub >> ${destpath}authorization\n" send "exit \n " expect eof wait spawn ssh $host expect "*Authentication successful*" {send "exit \n";wait;exit 0} \ "*password*" {close;exit 2} 
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载