ienki 发表于 2018-5-17 11:45:19

linux 主机互信

  目的:A主机想要无需输入密码连接B主机

  

  分下面三步:
  (1)在A本机生成公钥与私钥
  cd .ssh
  ssh-keygen -t rsa
  此时在.ssh目录下生成了id_rsa和id_rsa.pub。其中id_rsa是私钥,本机要用;id_rsa.pub是公钥
  

  (2)将A公钥上传到远程主机B上
  ssh-copy-id-i   id_rsa.pub      root@192.168.209.130#把公钥信息写到远程主机的authorized_keys中
  

  (3)连接远程主机B
  ssh 192.168.209.130    (成功)
  

  

  在A主机上面.ssh目录中,会有三个文件

  ls /root/.ssh
  authorized_keysid_rsaid_rsa.pubknown_hosts
  认证的主机         私钥          公钥         已经找到可以连接的主机
  

  

  

  二、详细过程
  A发送请求(+公钥)---->B(公钥对比,随机生成挑战码)(公钥对挑战码加密)---->A(用私钥解密)(明文发送)---->B(挑战码对比)
  

  

  三、问题
问题1:-bash: ssh: command not found
安装软件:
yum -y install openssh-clients


问题2:没有.ssh目录
先用root连接另一台主机


问题3:如果ssh的端口不是22,可用下面命令
ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 23 root@192.168.209.130"
  

  四、配置文件
  修改ssh的端口号:
  vi /etc/ssh/ssh_config   (客户端文件)
  vi /etc/ssh/sshd_config   (服务端文件)
  

  /etc/ssh/sshd_config配置文件
  PermitRootLogin yes      #PermitRootLogin用来设置能不能直接以超级用户ssh登录,修改为no   
PasswordAuthentication yes      #PasswordAuthentication用来设置是否开启密码验证机制,如果用密码登录系统,则设置yes
PermitEmptyPasswords no      #PermitEmptyPasswords用来设置是否允许用口令为空的账号登录系统,设置no
UseDNS yes      #UseDNS是否使用dns反向解析
  
页: [1]
查看完整版本: linux 主机互信