0
点赞
收藏
分享

微信扫一扫

ssh配置密钥对连接(无密码)

惠特曼 2022-04-06 阅读 114


一、测试环境

  1. 两台centos7
  2. 主机名为hk,做客户端A
  3. 主机名为cloud,做服务器B
    在这里插入图片描述

注:本测试A连B,不需要密码,但是B连A,需要密码

二、A生成密钥对

ssh-keygen

全部默认即可,因为我之前已经生成过密钥对,这里提示是否重写
在这里插入图片描述
上面那条命令执行完会生成id_rsaid_rsa.pub两个文件
在这里插入图片描述

三、将公钥复制到B上

1.方法一
如果当前启用了密码验证,那么将公钥传输到远程主机的最简单方法是使用 ssh-copy-id 命令。如果您使用密钥的默认名称,您只需指定远程用户和主机

ssh-copy-id B的IP

在这里插入图片描述
2.方法二
使用scp命令

scp /root/.ssh/id_rsa.pub B的ip:/root/.ssh/

在这里插入图片描述
这里也是要输入B的密码
然后连接上B,将刚刚从A那传过来的公钥追加到authorized_keys文件中
在这里插入图片描述
3.方法三
将A中的公钥先拖到本机,再从本机拖去B,然后追加到authorized_keys文件中

四、A无密码连接B

在这里插入图片描述

五、给B配置别名

这个做法是配置多台服务器的时候设置的,前提是前面的步骤已经完成,连接用别名才能生效。
1.方法一
config文件要自己新建

[root@hk ~]# vim ~/.ssh/config
Host h1
  HostName B的IP
  User root
  Port 22
  IdentityFile ~/.ssh/id_rsa
Host h2
  HostName C的IP
  User root
  Port 22
  IdentityFile ~/.ssh/id_rsa

:wq保存之后,再次ssh连接就可以使用别名了
在这里插入图片描述
2.方法二
修改用户的bash配置,添加别名

[root@hk ~]# vim ~/.bashrc
alias h1='ssh B的地址'
# 如果使用了方法一,也可以把B的地址代替为B的别名

顺便发下自己的bash配置
在这里插入图片描述

六、如果想要安全

如果您需要更改私钥上的密码,或者如果您最初设置了一个空密码并希望在以后获得保护,请使用带有 -p 选项的 ssh-keygen 命令

$ ssh-keygen -p
Enter file in which the key is (/home/training/.ssh/id_rsa): 
Key has comment 'training@example.com'
Enter new passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved with the new passphrase.
  • 在命令行上指定的任何密码都将保存在您的 shell 历史记录中
  • 虽然公钥本身是要共享的,但请记住,如果有人获得了您的私钥,他们就可以使用它来访问所有拥有公钥的系统
举报

相关推荐

0 条评论