Vagrant centos7 配置ssh免密码登陆

阿里云教程4个月前发布
26 0 0

1 ssh 加密方式

基于口令连接原理及过程


//在A上使用ssh连接B机
 A向B发送连接请求
 B收到请求后,将自己的公钥发给A
 A收到公钥后,用公钥加密B的登陆密码,生成加密密文,发送给B
 B收到加密密文后,用自己的私钥解密,得到解密信息,然后与B的登陆密码做比较,正确则允许A登陆。

Vagrant centos7 配置ssh免密码登陆

基于密钥连接原理及过程


A向B发送连接请求,并带上自己的公钥
B收到A的公钥,检查机器上的授权列表是否包含有A的公钥,若存在,再生成一个随机数,使用公钥加密,生成加密密文发送给A
A收到加密密文后,用私钥机密,得到的结果发送给B
B收到A发来的结果,与之前生成的随机数作比较,一致则允许A连接    

Vagrant centos7 配置ssh免密码登陆
简单来说,就是将客户端的公钥放到服务器上,那么客户端就可以免密码登录服务器了,那么客户端的公钥应该放到服务器上哪个地方呢?默认为你要登录的用户的家目录下的 .ssh 目录下的 authorized_keys 文件中(即:~/.ssh/authorized_keys)
参考文档

2 ssh 免密码配置

vagrant 中利用Vagrantfile 文件设置主机名,虚机名称


vi Vagrantfile
config.vm.username = "node3"
config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true

      vb.name = "node3"
  #
  #   # Customize the amount of memory on the VM:
  #   vb.memory = "1024"
  end

linux centos设置主机名

vi /etc/hostname
ssh 主机名登陆
背景:node3是要被远程的虚机名称,ip为192.168.33.13。
node1 通过ssh登陆node3时
ssh 192.168.33.13 可以,ssh hostname报错


[vagrant@node1 ~]$ ssh node3
ssh: Could not resolve hostname node3: Name or service not known


vi /etc/hosts

Vagrant centos7 配置ssh免密码登陆


[root@node1 ~]# ssh node3
root@node3's password: 

ssh 免密登陆
案例:node1免密登陆node3
以vagrant当前用户为例

cd ~/.ssh


ssh-keygen //生成密钥对

Vagrant centos7 配置ssh免密码登陆ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上

ssh-copy-id vagrant@node3 #当前用户为vagrant 可简写为 ssh-copy-id node3

Vagrant centos7 配置ssh免密码登陆

补充

ssh 基本的用法
以用户名user,登录远程主机host

ssh user@host

如果本地用户名与远程用户名一致,登录时可以省略用户名。

ssh host

比如 以node1当前的root 用户,登陆node3的root

ssh root@node3 #可以写成 ssh node3

© 版权声明

相关文章

暂无评论

none
暂无评论...