ssh实现基于密钥的登录

ssh服务登录的常用验证方式

用户/口令

基于密钥

 利用ssh-copy-id复制公钥到多台服务器,可以实现免密登录

1、首先在客户端生成一对密钥(ssh-keygen)

2、将客户端的公钥ssh-copy-id拷贝到服务器

3、服务器根据客户端发来的公钥进行密码加密,加密后再次回传给客户端,客户端用自己的私钥解密,如果密码正确,则用户登录成功

在客户端生成密钥对

ssh-keygen -t rsa

把公钥文件传输至远程服务器对应用户的家目录

ssh-copy-id user@host

[root@cent7 ~]# ssh-keygen   #生成密钥

[root@cent7 ~]# ssh-copy-id 10.0.0.133    #复制公钥到远程主机

[root@cent8 ~]# ssh-keygen -p      #重设私钥口令
#验证代理,保密解密后的密钥,口令就只需要输入一次,在gnome中,代理被自动提供给root用户
[root@cent8 ~]# ssh-agent bash     #启用ssh代理

[root@cent8 ~]# ps aux|grep agent
root      48193  0.0  0.0  29288   508 ?        Ss   08:31   0:00 ssh-agent bash
root      48212  0.0  0.0  12112  1072 pts/0    S+   08:31   0:00 grep --color=auto agent

[root@cent8 ~]# ssh-add     #钥匙通过命令添加给代理

去掉新连接时,yes/no的选项

-o StrictHostKeyChecking=no  连接新主机时,不进行公钥确认
ssh-copy-id -o StrictHostKeyChecking=no root@10.0.0.121

或者在当前用户目录的 .ssh/config文件,添加如下配置,如果.ssh目录没有config文件,可自行创建
StrictHostKeyChecking=no

安装自动登录ssh工具sshpass

#ubuntu:
root@ubuntu:~# apt -y install sshpass

#centos:
[root@cent8 ~]# yum -y install sshpass

 通过安装好的sshpass命令,运行下面命令就能无需手工介入将ssh公钥复制到远程主机

[root@cent8 ~]# sshpass -p 123456 ssh-copy-id -o StrictHostKeyChecking=no root@10.0.0.121
[root@cent8 ~]# sshpass -p 123456 ssh-copy-id root@10.0.0.121

通过脚本实现ssh基于密钥的登录

root@ubuntu:/data# cat key.sh
#!/bin/bash
HOSTS="
10.0.0.121
10.0.0.133
"
PASS=redhat
[ -f /root/.ssh/id_rsa ] || ssh -keygen -P "" /root/.ssh/id_rsa &> /dev/null
apt -y install sshpass &> /dev/null
for i in $HOSTS;do
	{
		sshpass -p $PASS ssh-copy-id -o StrictHostKeyChecking=no -i /root/.ssh/id_rsa.pub $i &> /dev/null
	}&
done
wait
root@ubuntu:/data# sh key.sh
root@ubuntu:/data# ssh 10.0.0.133
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Tue Apr 27 04:39:14 2021 from 10.0.0.121
[root@cent8 ~]# 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

y_zilong

一分钱的肯定

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值