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

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

简单来说,就是将客户端的公钥放到服务器上,那么客户端就可以免密码登录服务器了,那么客户端的公钥应该放到服务器上哪个地方呢?默认为你要登录的用户的家目录下的 .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设置主机名
ssh 主机名登陆
vi /etc/hostname
背景: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

[root@node1 ~]# ssh node3
root@node3's password:
ssh 免密登陆
案例:node1免密登陆node3
以vagrant当前用户为例
cd ~/.ssh
ssh-keygen //生成密钥对
ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上
ssh-copy-id vagrant@node3 #当前用户为vagrant 可简写为 ssh-copy-id node3
补充
ssh 基本的用法
以用户名user,登录远程主机host
ssh user@host
如果本地用户名与远程用户名一致,登录时可以省略用户名。
ssh host
比如 以node1当前的root 用户,登陆node3的root
ssh root@node3 #可以写成 ssh node3
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...